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;