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

hive git commit: HIVE-16415: Add tests covering single inserts of zero rows (Thomas Poepping, reviewed by Sergio Pena, Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master 7a6f90cec -> e80f34a4e


HIVE-16415: Add tests covering single inserts of zero rows (Thomas Poepping, reviewed by Sergio Pena, Ashutosh Chauhan)


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

Branch: refs/heads/master
Commit: e80f34a4ef1ba0571449ac93391d23e4cff3ff57
Parents: 7a6f90c
Author: Thomas Poepping <po...@amazon.com>
Authored: Fri Apr 14 13:10:59 2017 -0500
Committer: Sergio Pena <se...@cloudera.com>
Committed: Fri Apr 14 13:10:59 2017 -0500

----------------------------------------------------------------------
 .../clientpositive/zero_rows_blobstore.q        |  19 ++++
 .../queries/clientpositive/zero_rows_hdfs.q     |  18 +++
 .../clientpositive/zero_rows_blobstore.q.out    |  91 +++++++++++++++
 .../results/clientpositive/zero_rows_hdfs.q.out |  89 +++++++++++++++
 .../clientpositive/zero_rows_single_insert.q    |  17 +++
 .../zero_rows_single_insert.q.out               | 113 +++++++++++++++++++
 6 files changed, 347 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/e80f34a4/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_blobstore.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_blobstore.q b/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_blobstore.q
new file mode 100644
index 0000000..1f663ef
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_blobstore.q
@@ -0,0 +1,19 @@
+-- Insert overwrite into blobstore when WHERE clause returns zero rows
+DROP TABLE blobstore_source;
+CREATE TABLE blobstore_source (
+    key int
+) 
+LOCATION '${hiveconf:test.blobstore.path.unique}/zero_rows_blobstore/blobstore_source/';
+LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE blobstore_source;
+
+DROP TABLE blobstore_target;
+CREATE TABLE blobstore_target (
+    key int
+) 
+LOCATION '${hiveconf:test.blobstore.path.unique}/zero_rows_blobstore/blobstore_target';
+
+SELECT COUNT(*) FROM blobstore_target;
+INSERT OVERWRITE TABLE blobstore_target SELECT key FROM blobstore_source;
+SELECT COUNT(*) FROM blobstore_target;
+INSERT OVERWRITE TABLE blobstore_target SELECT key FROM blobstore_source WHERE FALSE;
+SELECT COUNT(*) FROM blobstore_target;

http://git-wip-us.apache.org/repos/asf/hive/blob/e80f34a4/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_hdfs.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_hdfs.q b/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_hdfs.q
new file mode 100644
index 0000000..ef3b71d
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/zero_rows_hdfs.q
@@ -0,0 +1,18 @@
+-- Insert overwrite into hdfs from blobstore when WHERE clause returns zero rows
+DROP TABLE blobstore_source;
+CREATE TABLE blobstore_source (
+    key int
+)
+LOCATION '${hiveconf:test.blobstore.path.unique}/zero_rows_hdfs/blobstore_source/';
+LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE blobstore_source;
+
+DROP TABLE hdfs_target;
+CREATE TABLE hdfs_target (
+    key int
+);
+
+SELECT COUNT(*) FROM hdfs_target;
+INSERT OVERWRITE TABLE hdfs_target SELECT key FROM blobstore_source;
+SELECT COUNT(*) FROM hdfs_target;
+INSERT OVERWRITE TABLE hdfs_target SELECT key FROM blobstore_source WHERE FALSE;
+SELECT COUNT(*) FROM hdfs_target;

http://git-wip-us.apache.org/repos/asf/hive/blob/e80f34a4/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_blobstore.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_blobstore.q.out
new file mode 100644
index 0000000..590f947
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_blobstore.q.out
@@ -0,0 +1,91 @@
+PREHOOK: query: DROP TABLE blobstore_source
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE blobstore_source
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE blobstore_source (
+    key int
+) 
+#### A masked pattern was here ####
+PREHOOK: type: CREATETABLE
+PREHOOK: Input: ### test.blobstore.path ###/zero_rows_blobstore/blobstore_source
+PREHOOK: Output: database:default
+PREHOOK: Output: default@blobstore_source
+POSTHOOK: query: CREATE TABLE blobstore_source (
+    key int
+) 
+#### A masked pattern was here ####
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Input: ### test.blobstore.path ###/zero_rows_blobstore/blobstore_source
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@blobstore_source
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE blobstore_source
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@blobstore_source
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE blobstore_source
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@blobstore_source
+PREHOOK: query: DROP TABLE blobstore_target
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE blobstore_target
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE blobstore_target (
+    key int
+) 
+#### A masked pattern was here ####
+PREHOOK: type: CREATETABLE
+PREHOOK: Input: ### test.blobstore.path ###/zero_rows_blobstore/blobstore_target
+PREHOOK: Output: database:default
+PREHOOK: Output: default@blobstore_target
+POSTHOOK: query: CREATE TABLE blobstore_target (
+    key int
+) 
+#### A masked pattern was here ####
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Input: ### test.blobstore.path ###/zero_rows_blobstore/blobstore_target
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@blobstore_target
+PREHOOK: query: SELECT COUNT(*) FROM blobstore_target
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_target
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM blobstore_target
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_target
+#### A masked pattern was here ####
+0
+PREHOOK: query: INSERT OVERWRITE TABLE blobstore_target SELECT key FROM blobstore_source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_source
+PREHOOK: Output: default@blobstore_target
+POSTHOOK: query: INSERT OVERWRITE TABLE blobstore_target SELECT key FROM blobstore_source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_source
+POSTHOOK: Output: default@blobstore_target
+PREHOOK: query: SELECT COUNT(*) FROM blobstore_target
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_target
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM blobstore_target
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_target
+#### A masked pattern was here ####
+100
+PREHOOK: query: INSERT OVERWRITE TABLE blobstore_target SELECT key FROM blobstore_source WHERE FALSE
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_source
+PREHOOK: Output: default@blobstore_target
+POSTHOOK: query: INSERT OVERWRITE TABLE blobstore_target SELECT key FROM blobstore_source WHERE FALSE
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_source
+POSTHOOK: Output: default@blobstore_target
+PREHOOK: query: SELECT COUNT(*) FROM blobstore_target
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_target
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM blobstore_target
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_target
+#### A masked pattern was here ####
+0

http://git-wip-us.apache.org/repos/asf/hive/blob/e80f34a4/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_hdfs.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_hdfs.q.out b/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_hdfs.q.out
new file mode 100644
index 0000000..92cf51f
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/zero_rows_hdfs.q.out
@@ -0,0 +1,89 @@
+PREHOOK: query: DROP TABLE blobstore_source
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE blobstore_source
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE blobstore_source (
+    key int
+)
+#### A masked pattern was here ####
+PREHOOK: type: CREATETABLE
+PREHOOK: Input: ### test.blobstore.path ###/zero_rows_hdfs/blobstore_source
+PREHOOK: Output: database:default
+PREHOOK: Output: default@blobstore_source
+POSTHOOK: query: CREATE TABLE blobstore_source (
+    key int
+)
+#### A masked pattern was here ####
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Input: ### test.blobstore.path ###/zero_rows_hdfs/blobstore_source
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@blobstore_source
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE blobstore_source
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@blobstore_source
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE blobstore_source
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@blobstore_source
+PREHOOK: query: DROP TABLE hdfs_target
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE hdfs_target
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE hdfs_target (
+    key int
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@hdfs_target
+POSTHOOK: query: CREATE TABLE hdfs_target (
+    key int
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@hdfs_target
+PREHOOK: query: SELECT COUNT(*) FROM hdfs_target
+PREHOOK: type: QUERY
+PREHOOK: Input: default@hdfs_target
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM hdfs_target
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@hdfs_target
+#### A masked pattern was here ####
+0
+PREHOOK: query: INSERT OVERWRITE TABLE hdfs_target SELECT key FROM blobstore_source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_source
+PREHOOK: Output: default@hdfs_target
+POSTHOOK: query: INSERT OVERWRITE TABLE hdfs_target SELECT key FROM blobstore_source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_source
+POSTHOOK: Output: default@hdfs_target
+POSTHOOK: Lineage: hdfs_target.key SIMPLE [(blobstore_source)blobstore_source.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: SELECT COUNT(*) FROM hdfs_target
+PREHOOK: type: QUERY
+PREHOOK: Input: default@hdfs_target
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM hdfs_target
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@hdfs_target
+#### A masked pattern was here ####
+100
+PREHOOK: query: INSERT OVERWRITE TABLE hdfs_target SELECT key FROM blobstore_source WHERE FALSE
+PREHOOK: type: QUERY
+PREHOOK: Input: default@blobstore_source
+PREHOOK: Output: default@hdfs_target
+POSTHOOK: query: INSERT OVERWRITE TABLE hdfs_target SELECT key FROM blobstore_source WHERE FALSE
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@blobstore_source
+POSTHOOK: Output: default@hdfs_target
+POSTHOOK: Lineage: hdfs_target.key SIMPLE [(blobstore_source)blobstore_source.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: SELECT COUNT(*) FROM hdfs_target
+PREHOOK: type: QUERY
+PREHOOK: Input: default@hdfs_target
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM hdfs_target
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@hdfs_target
+#### A masked pattern was here ####
+0

http://git-wip-us.apache.org/repos/asf/hive/blob/e80f34a4/ql/src/test/queries/clientpositive/zero_rows_single_insert.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/zero_rows_single_insert.q b/ql/src/test/queries/clientpositive/zero_rows_single_insert.q
new file mode 100644
index 0000000..eff4634
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/zero_rows_single_insert.q
@@ -0,0 +1,17 @@
+-- Insert overwrite into when WHERE clause returns zero rows
+DROP TABLE src_table;
+CREATE TABLE src_table (key int);
+LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE src_table;
+
+DROP TABLE target_table;
+CREATE TABLE target_table (key int);
+
+SELECT COUNT(*) FROM target_table;
+INSERT OVERWRITE TABLE target_table SELECT key FROM src_table;
+SELECT COUNT(*) FROM target_table;
+INSERT OVERWRITE TABLE target_table SELECT key FROM src_table WHERE FALSE;
+SELECT COUNT(*) FROM target_table;
+INSERT INTO TABLE target_table SELECT key FROM src_table;
+SELECT COUNT(*) FROM target_table;
+INSERT INTO TABLE target_table SELECT key FROM src_table WHERE FALSE;
+SELECT COUNT(*) FROM target_table;

http://git-wip-us.apache.org/repos/asf/hive/blob/e80f34a4/ql/src/test/results/clientpositive/zero_rows_single_insert.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/zero_rows_single_insert.q.out b/ql/src/test/results/clientpositive/zero_rows_single_insert.q.out
new file mode 100644
index 0000000..5ce86a7
--- /dev/null
+++ b/ql/src/test/results/clientpositive/zero_rows_single_insert.q.out
@@ -0,0 +1,113 @@
+PREHOOK: query: DROP TABLE src_table
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE src_table
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE src_table (key int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_table
+POSTHOOK: query: CREATE TABLE src_table (key int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_table
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE src_table
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@src_table
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv6.txt' INTO TABLE src_table
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@src_table
+PREHOOK: query: DROP TABLE target_table
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE target_table
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE target_table (key int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@target_table
+POSTHOOK: query: CREATE TABLE target_table (key int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@target_table
+PREHOOK: query: SELECT COUNT(*) FROM target_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@target_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM target_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@target_table
+#### A masked pattern was here ####
+0
+PREHOOK: query: INSERT OVERWRITE TABLE target_table SELECT key FROM src_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_table
+PREHOOK: Output: default@target_table
+POSTHOOK: query: INSERT OVERWRITE TABLE target_table SELECT key FROM src_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_table
+POSTHOOK: Output: default@target_table
+POSTHOOK: Lineage: target_table.key SIMPLE [(src_table)src_table.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: SELECT COUNT(*) FROM target_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@target_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM target_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@target_table
+#### A masked pattern was here ####
+100
+PREHOOK: query: INSERT OVERWRITE TABLE target_table SELECT key FROM src_table WHERE FALSE
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_table
+PREHOOK: Output: default@target_table
+POSTHOOK: query: INSERT OVERWRITE TABLE target_table SELECT key FROM src_table WHERE FALSE
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_table
+POSTHOOK: Output: default@target_table
+POSTHOOK: Lineage: target_table.key SIMPLE [(src_table)src_table.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: SELECT COUNT(*) FROM target_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@target_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM target_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@target_table
+#### A masked pattern was here ####
+0
+PREHOOK: query: INSERT INTO TABLE target_table SELECT key FROM src_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_table
+PREHOOK: Output: default@target_table
+POSTHOOK: query: INSERT INTO TABLE target_table SELECT key FROM src_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_table
+POSTHOOK: Output: default@target_table
+POSTHOOK: Lineage: target_table.key SIMPLE [(src_table)src_table.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: SELECT COUNT(*) FROM target_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@target_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM target_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@target_table
+#### A masked pattern was here ####
+100
+PREHOOK: query: INSERT INTO TABLE target_table SELECT key FROM src_table WHERE FALSE
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_table
+PREHOOK: Output: default@target_table
+POSTHOOK: query: INSERT INTO TABLE target_table SELECT key FROM src_table WHERE FALSE
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_table
+POSTHOOK: Output: default@target_table
+POSTHOOK: Lineage: target_table.key SIMPLE [(src_table)src_table.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: SELECT COUNT(*) FROM target_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@target_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*) FROM target_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@target_table
+#### A masked pattern was here ####
+100