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

Casting literals to TIMESTAMP throw when pushed to KuduScanNode

    XMLWordPrintableJSON

Details

    Description

      select cast(timestamp_col as timestamp) from alltypesagg
      where timestamp_col < cast('2010-01-01 00:05:20' as timestamp) and timestamp_col >= cast('2010-01-01 00:01:00' as timestamp)
      

      Fails analysis with this error:

      I0718 10:55:28.316362 10952 Frontend.java:875] analyze query select cast(timestamp_col as timestamp) from alltypesagg
      where timestamp_col < cast('2010-01-01 00:05:20' as timestamp) and timestamp_col >= cast('2010-01-01 00:01:00' as timestamp)
      I0718 10:55:28.316898 10952 Frontend.java:953] create plan
      I0718 10:55:28.317456 10952 jni-util.cc:166] com.cloudera.impala.common.InternalException: Error while extracting Kudu conjuncts.
      	at com.cloudera.impala.planner.KuduScanNode.init(KuduScanNode.java:98)
      	at com.cloudera.impala.planner.SingleNodePlanner.createScanNode(SingleNodePlanner.java:1322)
      	at com.cloudera.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:1549)
      	at com.cloudera.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:807)
      	at com.cloudera.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:646)
      	at com.cloudera.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:235)
      	at com.cloudera.impala.planner.SingleNodePlanner.createSingleNodePlan(SingleNodePlanner.java:141)
      	at com.cloudera.impala.planner.Planner.createPlan(Planner.java:60)
      	at com.cloudera.impala.service.Frontend.createExecRequest(Frontend.java:972)
      	at com.cloudera.impala.service.JniFrontend.createExecRequest(JniFrontend.java:147)
      Caused by: com.cloudera.impala.common.AnalysisException: DATE/DATETIME/TIMESTAMP literals not supported: CAST('2010-01-01 00:05:20' AS TIMESTAMP)
      	at com.cloudera.impala.analysis.LiteralExpr.create(LiteralExpr.java:216)
      	at com.cloudera.impala.analysis.Expr.foldConstantChildren(Expr.java:1207)
      	at com.cloudera.impala.analysis.BinaryPredicate.normalizeSlotRefComparison(BinaryPredicate.java:130)
      	at com.cloudera.impala.planner.KuduScanNode.extractKuduConjuncts(KuduScanNode.java:230)
      	at com.cloudera.impala.planner.KuduScanNode.init(KuduScanNode.java:90)
      	... 9 more
      

      We should have filtered such predicates out of the set of predicates that we would try to push to Kudu.

      Attachments

        Issue Links

          Activity

            People

              mjacobs Matthew Jacobs
              mjacobs Matthew Jacobs
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: