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) {