Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-12107

Precodition check fail when creating range partitioned Kudu table with unsupported types

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Frontend
    • ghx-label-3

    Description

      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;
      

      This leads to an IllegalStateException.

      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)
      

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            gaborkaszab Gabor Kaszab
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: