hailong wang created FLINK-15995:
------------------------------------

             Summary: TO_BASE64 sql operator change operandTypeChecker from 
OperandTypes.ANY to OperandTypes.family(SqlTypeFamily.STRING) 
                 Key: FLINK-15995
                 URL: https://issues.apache.org/jira/browse/FLINK-15995
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / Planner
    Affects Versions: 1.10.0
            Reporter: hailong wang
             Fix For: 1.11.0


For the TO_BASE64 sql operator, the operandTypeChecker is OperandTypes.ANY 
which is too large. I think we should change it to 
OperandTypes.family(SqlTypeFamily.STRING) .

For if users use 

 
{code:java}
testSqlApi("to_base64(11)", "AQIDBA=="){code}
 

it will throw 
{code:java}
Caused by: org.apache.flink.api.common.InvalidProgramException: Table program 
cannot be compiled. This is a bug. Please file an issue.Caused by: 
org.apache.flink.api.common.InvalidProgramException: Table program cannot be 
compiled. This is a bug. Please file an issue. at 
org.apache.flink.table.runtime.generated.CompileUtils.doCompile(CompileUtils.java:81)
 at 
org.apache.flink.table.runtime.generated.CompileUtils.lambda$compile$1(CompileUtils.java:66)
 at 
org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4742)
 at 
org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
 at 
org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
 at 
org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
 at 
org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
 ... 30 moreCaused by: org.codehaus.commons.compiler.CompileException: Line 
206, Column 150: No applicable constructor/method found for actual parameters 
"int"; candidates are: "public static java.lang.String 
org.apache.flink.table.runtime.functions.SqlFunctionUtils.toBase64(org.apache.flink.table.dataformat.BinaryString)",
 "public static java.lang.String 
org.apache.flink.table.runtime.functions.SqlFunctionUtils.toBase64(byte[])" at 
org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12124)
{code}
it is confusing to users

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to