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

Reply via email to