DRILL-4039: Query fails when non-ascii characters are used in string literals
closes #825 Project: http://git-wip-us.apache.org/repos/asf/drill/repo Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/0939485d Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/0939485d Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/0939485d Branch: refs/heads/master Commit: 0939485db40c09525ef3efc7db21cc72f4dd327d Parents: f1baec3 Author: liyun Liu <llys...@hotmail.com> Authored: Thu May 4 12:46:58 2017 +0800 Committer: Arina Ielchiieva <arina.yelchiy...@gmail.com> Committed: Fri May 5 15:46:01 2017 +0300 ---------------------------------------------------------------------- .../org/apache/drill/exec/store/hive/schema/DrillHiveTable.java | 5 +++-- .../apache/drill/exec/planner/sql/parser/DrillParserUtil.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill/blob/0939485d/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/DrillHiveTable.java ---------------------------------------------------------------------- diff --git a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/DrillHiveTable.java b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/DrillHiveTable.java index af02c0a..1e65ee0 100644 --- a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/DrillHiveTable.java +++ b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/DrillHiveTable.java @@ -18,6 +18,7 @@ package org.apache.drill.exec.store.hive.schema; import java.nio.charset.Charset; +import org.apache.drill.exec.planner.sql.parser.DrillParserUtil; import java.util.ArrayList; import java.util.List; @@ -117,7 +118,7 @@ public class DrillHiveTable extends DrillTable{ int maxLen = TypeInfoUtils.getCharacterLengthForType(pTypeInfo); return typeFactory.createTypeWithCharsetAndCollation( typeFactory.createSqlType(SqlTypeName.VARCHAR, maxLen), /*input type*/ - Charset.forName("ISO-8859-1"), /*unicode char set*/ + Charset.forName(DrillParserUtil.CHARSET), SqlCollation.IMPLICIT /* TODO: need to decide if implicit is the correct one */ ); } @@ -126,7 +127,7 @@ public class DrillHiveTable extends DrillTable{ int maxLen = TypeInfoUtils.getCharacterLengthForType(pTypeInfo); return typeFactory.createTypeWithCharsetAndCollation( typeFactory.createSqlType(SqlTypeName.CHAR, maxLen), /*input type*/ - Charset.forName("ISO-8859-1"), /*unicode char set*/ + Charset.forName(DrillParserUtil.CHARSET), SqlCollation.IMPLICIT ); } http://git-wip-us.apache.org/repos/asf/drill/blob/0939485d/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java index b6eb31a..39656e4 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java @@ -24,6 +24,7 @@ import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.parser.SqlParserUtil; +import org.apache.calcite.util.Util; import com.google.common.collect.Lists; @@ -32,7 +33,7 @@ import com.google.common.collect.Lists; */ public class DrillParserUtil { - public static final String CHARSET = "ISO-8859-1"; + public static final String CHARSET = Util.getDefaultCharset().name(); public static SqlNode createCondition(SqlNode left, SqlOperator op, SqlNode right) {