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

Anton Haidai commented on CALCITE-2616:
---------------------------------------

According to my testing, if using RexBuilder.makeCharLiteral, it is still 
possible to use only either ISO-8859-1(LATIN1) or UTF16: these are the only 
charsets accepted by SqlUtil.translateCharacterSetName(charsetName) invoked in 
NlsString constructor.  So looks like the limitations are the same as when 
changing defaults in saffron.properties and it is not possible to use UTF-8:
{code:java}
builder.getRexBuilder().makeCharLiteral(new NlsString("Петро ピーター", "UTF-8", 
SqlCollation.IMPLICIT));
{code}
Result:

java.nio.charset.UnsupportedCharsetException: UTF-8 at 
org.apache.calcite.util.NlsString.<init>(NlsString.java:72)

 

> Can't create Unicode literal by RelBuilder
> ------------------------------------------
>
>                 Key: CALCITE-2616
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2616
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.17.0
>            Reporter: Anton Haidai
>            Assignee: Julian Hyde
>            Priority: Major
>
> Test in RelBuilderTest to reproduce the issue:
> {code:java}
> @Test public void testScanWithFilterByUnicodeValue() {
>   final RelBuilder builder = RelBuilder.create(config().build());
>   RelNode root =
>       builder.scan("EMP")
>           .filter(
>               builder.call(SqlStdOperatorTable.EQUALS,
>                   builder.field("ENAME"),
>                   builder.literal("Петро ピーター")
>               )
>           )
>           .build();
> }
> {code}
>  Result:
> org.apache.calcite.runtime.CalciteException: Failed to encode 'Петро ピーター' in 
> character set 'ISO-8859-1'
> Possible workaround: create saffron.properties with the following property
> saffron.default.charset=UTF-16LE
> But UTF-8 will not work as a value of this property, see 
> SqlUtil.translateCharacterSetName
> Related code:
>  * SqlUtil.translateCharacterSetName(charsetName)
>  * RelDataTypeFactoryImpl.getDefaultCharset()
>  * SaffronProperties
>  Could it be considered to switch defaults from "ISO-8859-1" to "UTF-8" in 
> SaffronProperties?
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to