Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-15200

legacy planner cannot deal Type with precision like DataTypes.TIMESTAMP(3) in TableSourceUtil

    XMLWordPrintableJSON

Details

    Description

      org.apache.flink.table.client.gateway.SqlExecutionException: Invalid SQL update statement.
      at org.apache.flink.table.client.gateway.local.LocalExecutor.applyUpdate(LocalExecutor.java:684)
      at org.apache.flink.table.client.gateway.local.LocalExecutor.executeUpdateInternal(LocalExecutor.java:576)
      at org.apache.flink.table.client.gateway.local.LocalExecutor.executeUpdate(LocalExecutor.java:527)
      at org.apache.flink.table.client.cli.CliClient.callInsertInto(CliClient.java:535)
      at org.apache.flink.table.client.cli.CliClient.lambda$submitUpdate$0(CliClient.java:231)
      at java.util.Optional.map(Optional.java:215)
      at org.apache.flink.table.client.cli.CliClient.submitUpdate(CliClient.java:228)
      at org.apache.flink.table.client.SqlClient.openCli(SqlClient.java:129)
      at org.apache.flink.table.client.SqlClient.start(SqlClient.java:104)
      at org.apache.flink.table.client.SqlClient.main(SqlClient.java:178)
      Caused by: java.lang.RuntimeException: Error while applying rule PushProjectIntoTableSourceScanRule, args rel#88:FlinkLogicalCalc.LOGICAL(input=RelSubset#87,expr#0..2={inputs},expr#3=IS NOT NULL($t1),user=$t1,rowtime=$t0,$condition=$t3), Scan(table:[default_catalog, default_database, JsonSourceTable], fields:(rowtime, user, event), source:KafkaTableSource(rowtime, user, event))
      at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:235)
      at org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:631)
      at org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:327)
      at org.apache.flink.table.plan.Optimizer.runVolcanoPlanner(Optimizer.scala:280)
      at org.apache.flink.table.plan.Optimizer.optimizeLogicalPlan(Optimizer.scala:199)
      at org.apache.flink.table.plan.StreamOptimizer.optimize(StreamOptimizer.scala:66)
      at org.apache.flink.table.planner.StreamPlanner.writeToUpsertSink(StreamPlanner.scala:350)
      at org.apache.flink.table.planner.StreamPlanner.org$apache$flink$table$planner$StreamPlanner$$writeToSink(StreamPlanner.scala:278)
      at org.apache.flink.table.planner.StreamPlanner$$anonfun$2.apply(StreamPlanner.scala:166)
      at org.apache.flink.table.planner.StreamPlanner$$anonfun$2.apply(StreamPlanner.scala:145)
      at scala.Option.map(Option.scala:146)
      at org.apache.flink.table.planner.StreamPlanner.org$apache$flink$table$planner$StreamPlanner$$translate(StreamPlanner.scala:145)
      at org.apache.flink.table.planner.StreamPlanner$$anonfun$translate$1.apply(StreamPlanner.scala:117)
      at org.apache.flink.table.planner.StreamPlanner$$anonfun$translate$1.apply(StreamPlanner.scala:117)
      at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
      at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
      at scala.collection.Iterator$class.foreach(Iterator.scala:891)
      at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
      at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
      at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
      at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
      at scala.collection.AbstractTraversable.map(Traversable.scala:104)
      at org.apache.flink.table.planner.StreamPlanner.translate(StreamPlanner.scala:117)
      at org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:661)
      at org.apache.flink.table.api.internal.TableEnvironmentImpl.sqlUpdate(TableEnvironmentImpl.java:482)
      at org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.sqlUpdate(StreamTableEnvironmentImpl.java:331)
      at org.apache.flink.table.client.gateway.local.LocalExecutor.lambda$applyUpdate$14(LocalExecutor.java:676)
      at org.apache.flink.table.client.gateway.local.ExecutionContext.wrapClassLoader(ExecutionContext.java:220)
      at org.apache.flink.table.client.gateway.local.LocalExecutor.applyUpdate(LocalExecutor.java:674)
      ... 9 more
      Caused by: org.apache.flink.table.api.ValidationException: Rowtime field 'rowtime' has invalid type LocalDateTime. Rowtime attributes must be of type Timestamp.
      at org.apache.flink.table.sources.TableSourceUtil$$anonfun$3.apply(TableSourceUtil.scala:114)
      at org.apache.flink.table.sources.TableSourceUtil$$anonfun$3.apply(TableSourceUtil.scala:92)
      at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
      at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
      at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
      at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
      at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
      at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:186)
      at org.apache.flink.table.sources.TableSourceUtil$.computeIndexMapping(TableSourceUtil.scala:92)
      at org.apache.flink.table.sources.TableSourceUtil$.getPhysicalIndexes(TableSourceUtil.scala:307)
      at org.apache.flink.table.plan.rules.logical.PushProjectIntoTableSourceScanRule.onMatch(PushProjectIntoTableSourceScanRule.scala:46)
      at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:208)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              leonard Leonard Xu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m