You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by od...@apache.org on 2016/08/30 21:21:35 UTC

incubator-hawq git commit: HAWQ-975. Added validation for other types.

Repository: incubator-hawq
Updated Branches:
  refs/heads/HAWQ-992 546e5b8c8 -> c43b07858


HAWQ-975. Added validation for other types.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/c43b0785
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/c43b0785
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/c43b0785

Branch: refs/heads/HAWQ-992
Commit: c43b07858573fe70deacce0486f28f6855dd5601
Parents: 546e5b8
Author: Oleksandr Diachenko <od...@pivotal.io>
Authored: Tue Aug 30 14:21:23 2016 -0700
Committer: Oleksandr Diachenko <od...@pivotal.io>
Committed: Tue Aug 30 14:21:23 2016 -0700

----------------------------------------------------------------------
 .../hive/utilities/EnumHiveToHawqType.java      |  2 +-
 .../plugins/hive/utilities/HiveUtilities.java   | 26 +++++++++++---------
 .../hive/utilities/HiveUtilitiesTest.java       |  6 ++---
 3 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c43b0785/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/EnumHiveToHawqType.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/EnumHiveToHawqType.java b/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/EnumHiveToHawqType.java
index af7f0ef..f90f39a 100644
--- a/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/EnumHiveToHawqType.java
+++ b/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/EnumHiveToHawqType.java
@@ -48,7 +48,7 @@ public enum EnumHiveToHawqType {
     DateType("date", EnumHawqType.DateType),
     DecimalType("decimal", EnumHawqType.NumericType, "[(,)]"),
     VarcharType("varchar", EnumHawqType.VarcharType, "[(,)]"),
-    CharType("char", EnumHawqType.CharType, "[(,)]"),
+    CharType("char", EnumHawqType.BpcharType, "[(,)]"),
     ArrayType("array", EnumHawqType.TextType, "[<,>]"),
     MapType("map", EnumHawqType.TextType, "[<,>]"),
     StructType("struct", EnumHawqType.TextType, "[<,>]"),

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c43b0785/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilities.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilities.java b/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilities.java
index d046662..b9e73b3 100644
--- a/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilities.java
+++ b/pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilities.java
@@ -296,17 +296,21 @@ public class HiveUtilities {
             throw new UnsupportedTypeException("Invalid definition for column " + hawqColumnName +  ": modifiers are mandatory for type " + expectedHawqType.getTypeName());
 
         switch (hawqDataType) {
-        case NUMERIC:
-            Integer[] hiveTypeModifiers = EnumHiveToHawqType.extractModifiers(hiveType);
-            for (int i = 0; hawqTypeMods != null && i < hawqTypeMods.length; i++) {
-                if (hawqTypeMods[i] < hiveTypeModifiers[i])
-                    throw new UnsupportedTypeException(
-                            "Invalid definition for column " + hawqColumnName 
-                                    +  ": modifiers are not compatible, "
-                                    + Arrays.toString(hiveTypeModifiers) + ", "
-                                    + Arrays.toString(hawqTypeMods));
-            }
-            break;
+            case NUMERIC:
+            case VARCHAR:
+            case BPCHAR:
+            case CHAR:
+                Integer[] hiveTypeModifiers = EnumHiveToHawqType
+                        .extractModifiers(hiveType);
+                for (int i = 0; hawqTypeMods != null && i < hawqTypeMods.length; i++) {
+                    if (hawqTypeMods[i] < hiveTypeModifiers[i])
+                        throw new UnsupportedTypeException(
+                                "Invalid definition for column " + hawqColumnName
+                                        + ": modifiers are not compatible, "
+                                        + Arrays.toString(hiveTypeModifiers) + ", "
+                                        + Arrays.toString(hawqTypeMods));
+                }
+                break;
         }
 
         if (!expectedHawqType.getDataType().equals(hawqDataType)) {

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c43b0785/pxf/pxf-hive/src/test/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilitiesTest.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-hive/src/test/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilitiesTest.java b/pxf/pxf-hive/src/test/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilitiesTest.java
index 92e439e..d3fffc3 100644
--- a/pxf/pxf-hive/src/test/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilitiesTest.java
+++ b/pxf/pxf-hive/src/test/java/org/apache/hawq/pxf/plugins/hive/utilities/HiveUtilitiesTest.java
@@ -56,7 +56,7 @@ public class HiveUtilitiesTest {
     static String[][] typesWithModifiers = {
         {"decimal(19,84)", "numeric", "19,84"},
         {"varchar(13)", "varchar", "13"},
-        {"char(40)", "char", "40"},
+        {"char(40)", "bpchar", "40"},
     };
 
     static String[][] complexTypes = {
@@ -110,7 +110,7 @@ public class HiveUtilitiesTest {
         /*
          * decimal -> numeric
          * varchar -> varchar
-         * char -> char
+         * char -> bpchar
          */
         for (String[] line: typesWithModifiers) {
             String hiveType = line[0];
@@ -134,7 +134,7 @@ public class HiveUtilitiesTest {
         compatibleTypeName = HiveUtilities.toCompatibleHiveType(DataType.BYTEA);
         assertEquals(compatibleTypeName, EnumHiveToHawqType.BinaryType.getTypeName());
 
-        compatibleTypeName = HiveUtilities.toCompatibleHiveType(DataType.CHAR);
+        compatibleTypeName = HiveUtilities.toCompatibleHiveType(DataType.BPCHAR);
         assertEquals(compatibleTypeName, EnumHiveToHawqType.CharType.getTypeName());
 
         compatibleTypeName = HiveUtilities.toCompatibleHiveType(DataType.BIGINT);