You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sk...@apache.org on 2021/11/10 14:33:59 UTC

[ignite-3] branch main updated: IGNITE-15892 Fixed the default charset that is used by calcite engine. Fixes #436

This is an automated email from the ASF dual-hosted git repository.

sk0x50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 8789a58  IGNITE-15892 Fixed the default charset that is used by calcite engine. Fixes #436
8789a58 is described below

commit 8789a5870680694cac2bdc853f8d42e164d8d14d
Author: Slava Koptilin <sl...@gmail.com>
AuthorDate: Wed Nov 10 17:33:43 2021 +0300

    IGNITE-15892 Fixed the default charset that is used by calcite engine. Fixes #436
---
 .../processors/query/calcite/type/IgniteTypeFactory.java      | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeFactory.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeFactory.java
index 0b63322..dd1fa9f 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeFactory.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeFactory.java
@@ -22,10 +22,12 @@ import static org.apache.ignite.internal.util.CollectionUtils.first;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import org.apache.calcite.avatica.util.ByteString;
@@ -33,6 +35,7 @@ import org.apache.calcite.jdbc.JavaTypeFactoryImpl;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeSystem;
 import org.apache.calcite.runtime.Geometries;
+import org.apache.calcite.sql.SqlUtil;
 import org.apache.calcite.sql.type.BasicSqlType;
 import org.apache.calcite.sql.type.IntervalSqlType;
 
@@ -233,7 +236,13 @@ public class IgniteTypeFactory extends JavaTypeFactoryImpl {
     @Override
     public Charset getDefaultCharset() {
         // Use JVM default charset rather then Calcite default charset (ISO-8859-1).
-        return Charset.defaultCharset();
+        Charset jvmDefault = Charset.defaultCharset();
+        
+        if (SqlUtil.translateCharacterSetName(jvmDefault.name().toUpperCase(Locale.ROOT)) == null) {
+            jvmDefault = StandardCharsets.UTF_8;
+        }
+        
+        return jvmDefault;
     }
 
     private boolean allEquals(List<RelDataType> types) {