You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ai...@apache.org on 2017/04/07 14:07:22 UTC

[4/4] hive git commit: HIVE-16291: Hive fails when unions a parquet table with itself (Yibing Shi, reviewed by Ashutosh Chauhan & Aihua Xu)

HIVE-16291: Hive fails when unions a parquet table with itself (Yibing Shi, reviewed by Ashutosh Chauhan & Aihua Xu)


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

Branch: refs/heads/master
Commit: a5f94c0710ac6ad04305e2cc320bb9eede301815
Parents: f8404d8
Author: Aihua Xu <ai...@apache.org>
Authored: Fri Apr 7 09:57:25 2017 -0400
Committer: Aihua Xu <ai...@apache.org>
Committed: Fri Apr 7 09:57:25 2017 -0400

----------------------------------------------------------------------
 .../hadoop/hive/serde2/ColumnProjectionUtils.java     |  6 ++----
 .../hadoop/hive/serde2/TestColumnProjectionUtils.java | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/a5f94c07/serde/src/java/org/apache/hadoop/hive/serde2/ColumnProjectionUtils.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/ColumnProjectionUtils.java b/serde/src/java/org/apache/hadoop/hive/serde2/ColumnProjectionUtils.java
index 1354680..9844166 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/ColumnProjectionUtils.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/ColumnProjectionUtils.java
@@ -26,6 +26,7 @@ import java.util.Set;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.util.StringUtils;
+import org.apache.hive.common.util.HiveStringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -115,10 +116,7 @@ public final class ColumnProjectionUtils {
   public static void appendReadColumns(Configuration conf, List<Integer> ids) {
     String id = toReadColumnIDString(ids);
     String old = conf.get(READ_COLUMN_IDS_CONF_STR, null);
-    String newConfStr = id;
-    if (old != null && !old.isEmpty()) {
-      newConfStr = newConfStr + StringUtils.COMMA_STR + old;
-    }
+    String newConfStr = HiveStringUtils.joinIgnoringEmpty(new String[] {id, old}, StringUtils.COMMA);
     setReadColumnIDConf(conf, newConfStr);
     // Set READ_ALL_COLUMNS to false
     conf.setBoolean(READ_ALL_COLUMNS, false);

http://git-wip-us.apache.org/repos/asf/hive/blob/a5f94c07/serde/src/test/org/apache/hadoop/hive/serde2/TestColumnProjectionUtils.java
----------------------------------------------------------------------
diff --git a/serde/src/test/org/apache/hadoop/hive/serde2/TestColumnProjectionUtils.java b/serde/src/test/org/apache/hadoop/hive/serde2/TestColumnProjectionUtils.java
index 2b81b54..fbd9b07 100644
--- a/serde/src/test/org/apache/hadoop/hive/serde2/TestColumnProjectionUtils.java
+++ b/serde/src/test/org/apache/hadoop/hive/serde2/TestColumnProjectionUtils.java
@@ -85,6 +85,20 @@ public class TestColumnProjectionUtils {
   }
 
   @Test
+  public void testMultipleIdsWithEmpty() {
+    List<Integer> ids1 = Arrays.asList(1, 2);
+    List<Integer> ids2 = new ArrayList<Integer>();
+    List<Integer> ids3 = Arrays.asList(2, 3);
+
+    ColumnProjectionUtils.appendReadColumns(conf, ids1);
+    ColumnProjectionUtils.appendReadColumns(conf, ids2);
+    ColumnProjectionUtils.appendReadColumns(conf, ids3);
+
+    List<Integer> actual = ColumnProjectionUtils.getReadColumnIDs(conf);
+    assertEquals(Arrays.asList(2, 3, 1), actual);
+  }
+
+  @Test
   public void testDeprecatedMethods() {
     List<Integer> columnIds = new ArrayList<Integer>();
     List<Integer> actual;