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

Xin Gong commented on FLINK-37879:
----------------------------------

The transform can work after we convert concat(name, '你好') to concat(name, 
_UTF8'你好') and convert cast(name as string) to cast(name as varchar).

> transform concat function don't support utf-8 and cast don't support STRING
> ---------------------------------------------------------------------------
>
>                 Key: FLINK-37879
>                 URL: https://issues.apache.org/jira/browse/FLINK-37879
>             Project: Flink
>          Issue Type: Bug
>          Components: Flink CDC
>    Affects Versions: cdc-3.4.0
>            Reporter: Xin Gong
>            Priority: Major
>         Attachments: image-2025-05-30-21-01-40-897.png, 
> image-2025-05-30-21-02-43-251.png
>
>
> concat function:
> !image-2025-05-30-21-01-40-897.png|width=596,height=349!
> Caused by: org.apache.calcite.runtime.CalciteException: Failed to encode '中国' 
> in character set 'ISO-8859-1'
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>     at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>     at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>     at 
> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
>     at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:599)
>     at org.apache.calcite.util.NlsString.<init>(NlsString.java:147)
>     at org.apache.calcite.util.NlsString.<init>(NlsString.java:116)
>     at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:987)
>     at org.apache.calcite.rex.RexBuilder.makeCharLiteral(RexBuilder.java:1206)
>     at 
> org.apache.calcite.sql2rel.SqlNodeToRexConverterImpl.convertLiteral(SqlNodeToRexConverterImpl.java:112)
>     at 
> org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:5508)
>     at 
> org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4702)
>     at org.apache.calcite.sql.SqlLiteral.accept(SqlLiteral.java:570)
>     at 
> org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:5351)
>     at 
> org.apache.calcite.sql2rel.StandardConvertletTable.convertOperands(StandardConvertletTable.java:971)
>     at 
> org.apache.calcite.sql2rel.StandardConvertletTable.convertOperands(StandardConvertletTable.java:963)
>     at 
> org.apache.calcite.sql2rel.StandardConvertletTable.convertFunction(StandardConvertletTable.java:728)
>  
> cast function:
> !image-2025-05-30-21-02-43-251.png|width=958,height=485!
> org.apache.calcite.runtime.CalciteContextException: From line 1, column 97 to 
> line 1, column 102: Unknown identifier 'STRING'
>  
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
> at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:932)
> at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
> at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5362)
> at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.getValidatedNodeType(SqlValidatorImpl.java:1765)
> at 
> org.apache.calcite.sql.SqlUserDefinedTypeNameSpec.deriveType(SqlUserDefinedTypeNameSpec.java:49)
> at org.apache.calcite.sql.SqlDataTypeSpec.deriveType(SqlDataTypeSpec.java:233)
> at org.apache.calcite.sql.SqlDataTypeSpec.deriveType(SqlDataTypeSpec.java:220)
> at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:6475)
> at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:6360)
> at org.apache.calcite.sql.SqlDataTypeSpec.accept(SqlDataTypeSpec.java:197)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to