Yu Xu created CALCITE-7078:
------------------------------

             Summary: Function calls do not support Chinese
                 Key: CALCITE-7078
                 URL: https://issues.apache.org/jira/browse/CALCITE-7078
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.40.0
            Reporter: Yu Xu
             Fix For: 1.41.0


Currently we call function in quidem test can not use Chinese, reproduce as:

in function.iq, we execute:
{code:java}
SELECT to_base64('方解石'); {code}
would error out:
{code:java}
> 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:511)
>     at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:605)
>     at org.apache.calcite.util.NlsString.<init>(NlsString.java:155)
>     at org.apache.calcite.util.NlsString.<init>(NlsString.java:123)
>     at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1321)
>     at org.apache.calcite.rex.RexBuilder.makeCharLiteral(RexBuilder.java:1609)
>     at 
> org.apache.calcite.sql2rel.SqlNodeToRexConverterImpl.convertLiteral(SqlNodeToRexConverterImpl.java:110)
>     at 
> org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:5906)
>     at 
> org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:5084)
>     at org.apache.calcite.sql.SqlLiteral.accept(SqlLiteral.java:596)
>     at 
> org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:5735)
>     at 
> org.apache.calcite.sql2rel.StandardConvertletTable.convertOperands(StandardConver
>  (stack truncated) {code}
 

but in other datasystem such as MySQL is OK:
{code:java}
mysql> select to_base64('方解石');
+------------------------+
| to_base64('方解石')    |
+------------------------+
| 5pa56Kej55+z           |
+------------------------+
1 row in set (0.01 sec)
 {code}
 



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

Reply via email to