Gabor Kaszab created IMPALA-12107:
-------------------------------------

             Summary: Precodition check fail when creating range partitioned 
Kudu table with unsupported types
                 Key: IMPALA-12107
                 URL: https://issues.apache.org/jira/browse/IMPALA-12107
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
            Reporter: Gabor Kaszab



{code:java}
CREATE TABLE example_table (
  id INT,
  value DECIMAL(18,2),
  PRIMARY KEY (id, value)
)
PARTITION BY RANGE (value) (
  PARTITION VALUES <= 1000.00,
  PARTITION 1000.00 < VALUES <= 5000.00,
  PARTITION 5000.00 < VALUES <= 10000.00,
  PARTITION 10000.00 < VALUES
)
STORED AS KUDU;
{code}

This leads to an IllegalStateException.

{code:java}
I0428 14:17:47.564204 10195 jni-util.cc:288] 8f47bda158e1bba1:1d38855b00000000] 
java.lang.IllegalStateException
        at 
com.google.common.base.Preconditions.checkState(Preconditions.java:492)
        at 
org.apache.impala.analysis.RangePartition.analyzeBoundaryValue(RangePartition.java:180)
        at 
org.apache.impala.analysis.RangePartition.analyzeBoundaryValues(RangePartition.java:150)
        at 
org.apache.impala.analysis.RangePartition.analyze(RangePartition.java:135)
        at 
org.apache.impala.analysis.KuduPartitionParam.analyzeRangeParam(KuduPartitionParam.java:144)
        at 
org.apache.impala.analysis.KuduPartitionParam.analyze(KuduPartitionParam.java:132)
        at 
org.apache.impala.analysis.CreateTableStmt.analyzeKuduPartitionParams(CreateTableStmt.java:550)
        at 
org.apache.impala.analysis.CreateTableStmt.analyzeSynchronizedKuduTableParams(CreateTableStmt.java:502)
        at 
org.apache.impala.analysis.CreateTableStmt.analyzeKuduFormat(CreateTableStmt.java:352)
        at 
org.apache.impala.analysis.CreateTableStmt.analyze(CreateTableStmt.java:266)
        at 
org.apache.impala.analysis.AnalysisContext.analyze(AnalysisContext.java:521)
        at 
org.apache.impala.analysis.AnalysisContext.analyzeAndAuthorize(AnalysisContext.java:468)
        at 
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2059)
        at 
org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:1967)
        at 
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1788)
        at 
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:164)
{code}

Here:
https://github.com/apache/impala/blob/112bab64b77d6ed966b1c67bd503ed632da6f208/fe/src/main/java/org/apache/impala/analysis/RangePartition.java#L198

Instead of running into a Precondition check failure we should detect 
unsupported types beforehand and return and fail the query with a proper error 
message.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to