You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2014/11/07 18:40:31 UTC

svn commit: r1637419 - in /hive/trunk/ql/src/test: queries/clientpositive/acid_join.q queries/clientpositive/insert_nonacid_from_acid.q results/clientpositive/acid_join.q.out results/clientpositive/insert_nonacid_from_acid.q.out

Author: gates
Date: Fri Nov  7 17:40:30 2014
New Revision: 1637419

URL: http://svn.apache.org/r1637419
Log:
HIVE-8710 Add more tests for transactional inserts (Alan Gates, reviewed by Eugene Koifman)

Added:
    hive/trunk/ql/src/test/queries/clientpositive/acid_join.q
    hive/trunk/ql/src/test/queries/clientpositive/insert_nonacid_from_acid.q
    hive/trunk/ql/src/test/results/clientpositive/acid_join.q.out
    hive/trunk/ql/src/test/results/clientpositive/insert_nonacid_from_acid.q.out

Added: hive/trunk/ql/src/test/queries/clientpositive/acid_join.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/acid_join.q?rev=1637419&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/acid_join.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/acid_join.q Fri Nov  7 17:40:30 2014
@@ -0,0 +1,15 @@
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+set hive.enforce.bucketing=true;
+
+-- This test checks that a join with tables with two different buckets send the right bucket info to each table.
+create table acidjoin1(name varchar(50), age int) clustered by (age) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true"); 
+create table acidjoin2(name varchar(50), gpa decimal(3, 2)) clustered by (gpa) into 4 buckets stored as orc TBLPROPERTIES ("transactional"="true"); 
+create table acidjoin3(name varchar(50), age int, gpa decimal(3, 2)) clustered by (gpa) into 8 buckets stored as orc TBLPROPERTIES ("transactional"="true"); 
+
+insert into table acidjoin1 values ('aaa', 35), ('bbb', 32), ('ccc', 32), ('ddd', 35), ('eee', 32); 
+insert into table acidjoin2 values ('aaa', 3.00), ('bbb', 3.01), ('ccc', 3.02), ('ddd', 3.03), ('eee', 3.04); 
+
+insert into table acidjoin3 select a.name, age, gpa from acidjoin1 a join acidjoin2 b on (a.name = b.name);
+select * from acidjoin3 order by name;
+

Added: hive/trunk/ql/src/test/queries/clientpositive/insert_nonacid_from_acid.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/insert_nonacid_from_acid.q?rev=1637419&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/insert_nonacid_from_acid.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/insert_nonacid_from_acid.q Fri Nov  7 17:40:30 2014
@@ -0,0 +1,13 @@
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+set hive.enforce.bucketing=true;
+
+-- This test checks that selecting from an acid table and inserting into a non-acid table works.
+create table sample_06(name varchar(50), age int, gpa decimal(3, 2)) clustered by (age) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true"); 
+insert into table sample_06 values ('aaa', 35, 3.00), ('bbb', 32, 3.00), ('ccc', 32, 3.00), ('ddd', 35, 3.00), ('eee', 32, 3.00); 
+select * from sample_06 where gpa = 3.00;
+
+create table tab1 (name varchar(50), age int, gpa decimal(3, 2));
+insert into table tab1 select * from sample_06 where gpa = 3.00;
+select * from tab1;
+

Added: hive/trunk/ql/src/test/results/clientpositive/acid_join.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/acid_join.q.out?rev=1637419&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/acid_join.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/acid_join.q.out Fri Nov  7 17:40:30 2014
@@ -0,0 +1,72 @@
+PREHOOK: query: -- This test checks that a join with tables with two different buckets send the right bucket info to each table.
+create table acidjoin1(name varchar(50), age int) clustered by (age) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@acidjoin1
+POSTHOOK: query: -- This test checks that a join with tables with two different buckets send the right bucket info to each table.
+create table acidjoin1(name varchar(50), age int) clustered by (age) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@acidjoin1
+PREHOOK: query: create table acidjoin2(name varchar(50), gpa decimal(3, 2)) clustered by (gpa) into 4 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@acidjoin2
+POSTHOOK: query: create table acidjoin2(name varchar(50), gpa decimal(3, 2)) clustered by (gpa) into 4 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@acidjoin2
+PREHOOK: query: create table acidjoin3(name varchar(50), age int, gpa decimal(3, 2)) clustered by (gpa) into 8 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@acidjoin3
+POSTHOOK: query: create table acidjoin3(name varchar(50), age int, gpa decimal(3, 2)) clustered by (gpa) into 8 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@acidjoin3
+PREHOOK: query: insert into table acidjoin1 values ('aaa', 35), ('bbb', 32), ('ccc', 32), ('ddd', 35), ('eee', 32)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@acidjoin1
+POSTHOOK: query: insert into table acidjoin1 values ('aaa', 35), ('bbb', 32), ('ccc', 32), ('ddd', 35), ('eee', 32)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@acidjoin1
+POSTHOOK: Lineage: acidjoin1.age EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: acidjoin1.name EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: insert into table acidjoin2 values ('aaa', 3.00), ('bbb', 3.01), ('ccc', 3.02), ('ddd', 3.03), ('eee', 3.04)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@acidjoin2
+POSTHOOK: query: insert into table acidjoin2 values ('aaa', 3.00), ('bbb', 3.01), ('ccc', 3.02), ('ddd', 3.03), ('eee', 3.04)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@acidjoin2
+POSTHOOK: Lineage: acidjoin2.gpa EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: acidjoin2.name EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: insert into table acidjoin3 select a.name, age, gpa from acidjoin1 a join acidjoin2 b on (a.name = b.name)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acidjoin1
+PREHOOK: Input: default@acidjoin2
+PREHOOK: Output: default@acidjoin3
+POSTHOOK: query: insert into table acidjoin3 select a.name, age, gpa from acidjoin1 a join acidjoin2 b on (a.name = b.name)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acidjoin1
+POSTHOOK: Input: default@acidjoin2
+POSTHOOK: Output: default@acidjoin3
+POSTHOOK: Lineage: acidjoin3.age SIMPLE [(acidjoin1)a.FieldSchema(name:age, type:int, comment:null), ]
+POSTHOOK: Lineage: acidjoin3.gpa SIMPLE [(acidjoin2)b.FieldSchema(name:gpa, type:decimal(3,2), comment:null), ]
+POSTHOOK: Lineage: acidjoin3.name SIMPLE [(acidjoin1)a.FieldSchema(name:name, type:varchar(50), comment:null), ]
+PREHOOK: query: select * from acidjoin3 order by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acidjoin3
+#### A masked pattern was here ####
+POSTHOOK: query: select * from acidjoin3 order by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acidjoin3
+#### A masked pattern was here ####
+aaa	35	3.00
+bbb	32	3.01
+ccc	32	3.02
+ddd	35	3.03
+eee	32	3.04

Added: hive/trunk/ql/src/test/results/clientpositive/insert_nonacid_from_acid.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/insert_nonacid_from_acid.q.out?rev=1637419&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/insert_nonacid_from_acid.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/insert_nonacid_from_acid.q.out Fri Nov  7 17:40:30 2014
@@ -0,0 +1,66 @@
+PREHOOK: query: -- This test checks that selecting from an acid table and inserting into a non-acid table works.
+create table sample_06(name varchar(50), age int, gpa decimal(3, 2)) clustered by (age) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@sample_06
+POSTHOOK: query: -- This test checks that selecting from an acid table and inserting into a non-acid table works.
+create table sample_06(name varchar(50), age int, gpa decimal(3, 2)) clustered by (age) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@sample_06
+PREHOOK: query: insert into table sample_06 values ('aaa', 35, 3.00), ('bbb', 32, 3.00), ('ccc', 32, 3.00), ('ddd', 35, 3.00), ('eee', 32, 3.00)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@sample_06
+POSTHOOK: query: insert into table sample_06 values ('aaa', 35, 3.00), ('bbb', 32, 3.00), ('ccc', 32, 3.00), ('ddd', 35, 3.00), ('eee', 32, 3.00)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@sample_06
+POSTHOOK: Lineage: sample_06.age EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: sample_06.gpa EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: sample_06.name EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from sample_06 where gpa = 3.00
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sample_06
+#### A masked pattern was here ####
+POSTHOOK: query: select * from sample_06 where gpa = 3.00
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sample_06
+#### A masked pattern was here ####
+eee	32	3.00
+ccc	32	3.00
+bbb	32	3.00
+ddd	35	3.00
+aaa	35	3.00
+PREHOOK: query: create table tab1 (name varchar(50), age int, gpa decimal(3, 2))
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tab1
+POSTHOOK: query: create table tab1 (name varchar(50), age int, gpa decimal(3, 2))
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tab1
+PREHOOK: query: insert into table tab1 select * from sample_06 where gpa = 3.00
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sample_06
+PREHOOK: Output: default@tab1
+POSTHOOK: query: insert into table tab1 select * from sample_06 where gpa = 3.00
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sample_06
+POSTHOOK: Output: default@tab1
+POSTHOOK: Lineage: tab1.age SIMPLE [(sample_06)sample_06.FieldSchema(name:age, type:int, comment:null), ]
+POSTHOOK: Lineage: tab1.gpa SIMPLE [(sample_06)sample_06.FieldSchema(name:gpa, type:decimal(3,2), comment:null), ]
+POSTHOOK: Lineage: tab1.name SIMPLE [(sample_06)sample_06.FieldSchema(name:name, type:varchar(50), comment:null), ]
+PREHOOK: query: select * from tab1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from tab1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab1
+#### A masked pattern was here ####
+eee	32	3.00
+ccc	32	3.00
+bbb	32	3.00
+ddd	35	3.00
+aaa	35	3.00