Nico Kruber created FLINK-21565:
-----------------------------------
Summary: Support more integer types in TIMESTAMPADD
Key: FLINK-21565
URL: https://issues.apache.org/jira/browse/FLINK-21565
Project: Flink
Issue Type: Improvement
Components: Table SQL / API
Affects Versions: 1.12.1
Reporter: Nico Kruber
At the moment, {{TIMESTAMPADD}} does not seem to support {{SMALLINT}} or
{{TINYINT}} types which should be perfectly suitable for auto-conversion (in
contrast to BIGINT or floating numbers where I would expect the user to cast it
appropriately).
It currently fails with the following exception:
{code}
org.apache.flink.table.planner.codegen.CodeGenException: Unsupported casting
from TINYINT to INTERVAL SECOND(3).
at
org.apache.flink.table.planner.codegen.calls.ScalarOperatorGens$.numericCasting(ScalarOperatorGens.scala:2352)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.calls.ScalarOperatorGens$.generateBinaryArithmeticOperator(ScalarOperatorGens.scala:93)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateCallExpression(ExprCodeGenerator.scala:590)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:529)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:56)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at org.apache.calcite.rex.RexCall.accept(RexCall.java:174)
~[flink-table_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.$anonfun$visitCall$2(ExprCodeGenerator.scala:526)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:517)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:56)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at org.apache.calcite.rex.RexCall.accept(RexCall.java:174)
~[flink-table_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.$anonfun$visitCall$2(ExprCodeGenerator.scala:526)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:517)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:56)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at org.apache.calcite.rex.RexCall.accept(RexCall.java:174)
~[flink-table_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateExpression(ExprCodeGenerator.scala:155)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.$anonfun$generateProcessCode$5(CalcCodeGenerator.scala:143)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.produceProjectionCode$1(CalcCodeGenerator.scala:143)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.generateProcessCode(CalcCodeGenerator.scala:169)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.generateCalcOperator(CalcCodeGenerator.scala:59)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecCalc.translateToPlanInternal(StreamExecCalc.scala:84)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecCalc.translateToPlanInternal(StreamExecCalc.scala:39)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.exec.ExecNode.translateToPlan(ExecNode.scala:59)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.exec.ExecNode.translateToPlan$(ExecNode.scala:57)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecCalcBase.translateToPlan(StreamExecCalcBase.scala:38)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecLegacySink.translateToTransformation(StreamExecLegacySink.scala:158)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecLegacySink.translateToPlanInternal(StreamExecLegacySink.scala:82)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecLegacySink.translateToPlanInternal(StreamExecLegacySink.scala:48)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.exec.ExecNode.translateToPlan(ExecNode.scala:59)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.exec.ExecNode.translateToPlan$(ExecNode.scala:57)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecLegacySink.translateToPlan(StreamExecLegacySink.scala:48)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.delegation.StreamPlanner.$anonfun$translateToPlan$1(StreamPlanner.scala:66)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.Iterator.foreach(Iterator.scala:937)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.Iterator.foreach$(Iterator.scala:937)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.IterableLike.foreach(IterableLike.scala:70)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map(TraversableLike.scala:233)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
~[flink-dist_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.delegation.StreamPlanner.translateToPlan(StreamPlanner.scala:65)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:167)
~[flink-table-blink_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:1329)
~[flink-table_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.api.internal.TableEnvironmentImpl.translateAndClearBuffer(TableEnvironmentImpl.java:1321)
~[flink-table_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl.getPipeline(StreamTableEnvironmentImpl.java:328)
~[flink-table_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.client.gateway.local.ExecutionContext.lambda$createPipeline$1(ExecutionContext.java:287)
~[flink-sql-client_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.client.gateway.local.ExecutionContext.wrapClassLoader(ExecutionContext.java:256)
~[flink-sql-client_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.client.gateway.local.ExecutionContext.createPipeline(ExecutionContext.java:282)
~[flink-sql-client_2.12-1.12.1.jar:1.12.1]
at
org.apache.flink.table.client.gateway.local.LocalExecutor.executeQueryInternal(LocalExecutor.java:542)
~[flink-sql-client_2.12-1.12.1.jar:1.12.1]
... 8 more
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)