[ https://issues.apache.org/jira/browse/FLINK-27212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17522618#comment-17522618 ]
Wenlong Lyu commented on FLINK-27212: ------------------------------------- [~matriv] I think you may have some misunderstanding here. Regarding x'XXX', it means a hexdecimal literal(https://dev.mysql.com/doc/refman/8.0/en/hexadecimal-literals.html), it requires even number of values, the error in calcite means that the literal is illegal. it is irrelevant to the casting behavior I think. BTW, we may need a FLIP for such kind of change to collect more feedbacks from devs and users. I think it is better to keep it the same as former versions, and make the decision later. > Failed to CAST('abcde', VARBINARY) > ---------------------------------- > > Key: FLINK-27212 > URL: https://issues.apache.org/jira/browse/FLINK-27212 > Project: Flink > Issue Type: Bug > Components: Table SQL / Runtime > Affects Versions: 1.16.0 > Reporter: Shengkai Fang > Assignee: Marios Trivyzas > Priority: Blocker > Fix For: 1.16.0 > > > Please add test in the CalcITCase > {code:scala} > @Test > def testCalc(): Unit = { > val sql = > """ > |SELECT CAST('abcde' AS VARBINARY(6)) > |""".stripMargin > val result = tEnv.executeSql(sql) > print(result.getResolvedSchema) > result.print() > } > {code} > The exception is > {code:java} > Caused by: org.apache.flink.table.api.TableException: Odd number of > characters. > at > org.apache.flink.table.utils.EncodingUtils.decodeHex(EncodingUtils.java:203) > at StreamExecCalc$33.processElement(Unknown Source) > at > org.apache.flink.streaming.runtime.tasks.ChainingOutput.pushToOperator(ChainingOutput.java:99) > at > org.apache.flink.streaming.runtime.tasks.ChainingOutput.collect(ChainingOutput.java:80) > at > org.apache.flink.streaming.runtime.tasks.ChainingOutput.collect(ChainingOutput.java:39) > at > org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:56) > at > org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:29) > at > org.apache.flink.streaming.api.operators.StreamSourceContexts$ManualWatermarkContext.processAndCollect(StreamSourceContexts.java:418) > at > org.apache.flink.streaming.api.operators.StreamSourceContexts$WatermarkContext.collect(StreamSourceContexts.java:513) > at > org.apache.flink.streaming.api.operators.StreamSourceContexts$SwitchingOnClose.collect(StreamSourceContexts.java:103) > at > org.apache.flink.streaming.api.functions.source.InputFormatSourceFunction.run(InputFormatSourceFunction.java:92) > at > org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110) > at > org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:67) > at > org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:332) > {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)