[jira] [Commented] (FLINK-26327) throw not a literal exception in callContext.getArgumentValue when getTypeInference

2022-03-31 Thread Francesco Guardiani (Jira)


[ 
https://issues.apache.org/jira/browse/FLINK-26327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17515331#comment-17515331
 ] 

Francesco Guardiani commented on FLINK-26327:
-

Can you share the code of the Nvl class, or even better a small self-contained 
reproducer?

> throw not a literal exception in callContext.getArgumentValue when 
> getTypeInference
> ---
>
> Key: FLINK-26327
> URL: https://issues.apache.org/jira/browse/FLINK-26327
> Project: Flink
>  Issue Type: Bug
>  Components: Table SQL / API
>Affects Versions: 1.14.2
>Reporter: Spongebob
>Priority: Major
>
>  
> {code:java}
> //代码占位符
> tableEnvironment.createTemporaryFunction("ROUNDX", RoundX.class);
> tableEnvironment.createTemporaryFunction("NVL", Nvl.class);
> tableEnvironment.executeSql("select ROUNDX( CAST(1.12345 as 
> decimal(10,3)),NVL(MAX(f0),2) ) from t1").print();
> // exception
> Exception in thread "main" java.lang.AssertionError: not a literal: NVL($0, 2)
> // trace
> // `NVL` is a scalarFunction that likes oracle nvl function. And this 
> exception might be thrown from this code in my  `getTypeInference` function 
> of ROUNDX scalarFunction.
> Optional secondValue = callContext.getArgumentValue(1, 
> Integer.class);{code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (FLINK-26327) throw not a literal exception in callContext.getArgumentValue when getTypeInference

2022-02-24 Thread Spongebob (Jira)


[ 
https://issues.apache.org/jira/browse/FLINK-26327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17497243#comment-17497243
 ] 

Spongebob commented on FLINK-26327:
---

{code:java}
//代码占位符
Exception in thread "main" java.lang.AssertionError: not a literal: NVL($0, 2)
    at org.apache.calcite.rex.RexLiteral.findValue(RexLiteral.java:1161)
    at org.apache.calcite.rex.RexLiteral.value(RexLiteral.java:1133)
    at 
org.apache.calcite.rex.RexCallBinding.getOperandLiteralValue(RexCallBinding.java:89)
    at 
org.apache.flink.table.planner.functions.inference.OperatorBindingCallContext$2.getValueAs(OperatorBindingCallContext.java:102)
    at 
org.apache.flink.table.planner.functions.inference.AbstractSqlCallContext.getLiteralValueAs(AbstractSqlCallContext.java:123)
    at 
org.apache.flink.table.planner.functions.inference.OperatorBindingCallContext.getArgumentValue(OperatorBindingCallContext.java:98)
    at 
org.apache.flink.table.types.inference.utils.AdaptedCallContext.getArgumentValue(AdaptedCallContext.java:91)
    at 
com.xctech.cone.etl.migrate.udf.RoundX.lambda$getTypeInference$0(RoundX.java:47)
    at 
org.apache.flink.table.types.inference.TypeInferenceUtil.inferOutputType(TypeInferenceUtil.java:152)
    at 
org.apache.flink.table.planner.codegen.calls.BridgingFunctionGenUtil$.generateFunctionAwareCallWithDataType(BridgingFunctionGenUtil.scala:100)
    at 
org.apache.flink.table.planner.codegen.calls.BridgingFunctionGenUtil$.generateFunctionAwareCall(BridgingFunctionGenUtil.scala:73)
    at 
org.apache.flink.table.planner.codegen.calls.BridgingSqlFunctionCallGen.generate(BridgingSqlFunctionCallGen.scala:81)
    at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateCallExpression(ExprCodeGenerator.scala:825)
    at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:503)
    at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:58)
    at org.apache.calcite.rex.RexCall.accept(RexCall.java:174)
    at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateExpression(ExprCodeGenerator.scala:157)
    at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.$anonfun$generateProcessCode$4(CalcCodeGenerator.scala:137)
    at 
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
    at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
    at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at scala.collection.TraversableLike.map(TraversableLike.scala:233)
    at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.produceProjectionCode$1(CalcCodeGenerator.scala:137)
    at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.generateProcessCode(CalcCodeGenerator.scala:162)
    at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.generateCalcOperator(CalcCodeGenerator.scala:48)
    at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator.generateCalcOperator(CalcCodeGenerator.scala)
    at 
org.apache.flink.table.planner.plan.nodes.exec.common.CommonExecCalc.translateToPlanInternal(CommonExecCalc.java:94)
    at 
org.apache.flink.table.planner.plan.nodes.exec.ExecNodeBase.translateToPlan(ExecNodeBase.java:134)
    at 
org.apache.flink.table.planner.plan.nodes.exec.ExecEdge.translateToPlan(ExecEdge.java:250)
    at 
org.apache.flink.table.planner.plan.nodes.exec.batch.BatchExecSink.translateToPlanInternal(BatchExecSink.java:58)
    at 
org.apache.flink.table.planner.plan.nodes.exec.ExecNodeBase.translateToPlan(ExecNodeBase.java:134)
    at 
org.apache.flink.table.planner.delegation.BatchPlanner.$anonfun$translateToPlan$1(BatchPlanner.scala:82)
    at 
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
    at scala.collection.Iterator.foreach(Iterator.scala:937)
    at scala.collection.Iterator.foreach$(Iterator.scala:937)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
    at scala.collection.IterableLike.foreach(IterableLike.scala:70)
    at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at scala.collection.TraversableLike.map(TraversableLike.scala:233)
    at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at 
org.apache.flink.table.planner.delegation.BatchPlanner.translateToPlan(BatchPlanner.scala:81)
    at 
org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:185)
    at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:1665)
    

[jira] [Commented] (FLINK-26327) throw not a literal exception in callContext.getArgumentValue when getTypeInference

2022-02-23 Thread Jark Wu (Jira)


[ 
https://issues.apache.org/jira/browse/FLINK-26327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17497123#comment-17497123
 ] 

Jark Wu commented on FLINK-26327:
-

Could you share the full exception stack ? 

> throw not a literal exception in callContext.getArgumentValue when 
> getTypeInference
> ---
>
> Key: FLINK-26327
> URL: https://issues.apache.org/jira/browse/FLINK-26327
> Project: Flink
>  Issue Type: Bug
>  Components: Table SQL / API
>Affects Versions: 1.14.2
>Reporter: Spongebob
>Priority: Major
>
>  
> {code:java}
> //代码占位符
> tableEnvironment.createTemporaryFunction("ROUNDX", RoundX.class);
> tableEnvironment.createTemporaryFunction("NVL", Nvl.class);
> tableEnvironment.executeSql("select ROUNDX( CAST(1.12345 as 
> decimal(10,3)),NVL(MAX(f0),2) ) from t1").print();
> // exception
> Exception in thread "main" java.lang.AssertionError: not a literal: NVL($0, 2)
> // trace
> // `NVL` is a scalarFunction that likes oracle nvl function. And this 
> exception might be thrown from this code in my  `getTypeInference` function 
> of ROUNDX scalarFunction.
> Optional secondValue = callContext.getArgumentValue(1, 
> Integer.class);{code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)