mirror of
https://github.com/apache/impala.git
synced 2026-01-07 09:02:19 -05:00
IMPALA-375: Add column permutation clause to INSERT statement
This commit is contained in:
191
testdata/workloads/functional-query/queries/QueryTest/insert_permutation.test
vendored
Normal file
191
testdata/workloads/functional-query/queries/QueryTest/insert_permutation.test
vendored
Normal file
@@ -0,0 +1,191 @@
|
||||
====
|
||||
---- QUERY
|
||||
create database insert_permutation_test
|
||||
---- RESULTS
|
||||
====
|
||||
---- QUERY
|
||||
use insert_permutation_test
|
||||
---- RESULTS
|
||||
====
|
||||
---- QUERY
|
||||
create table perm_nopart(int_col1 int, string_col string, int_col2 int);
|
||||
create table perm_part(int_col1 int, string_col string) partitioned by (p1 int, p2 string);
|
||||
---- RESULTS
|
||||
====
|
||||
---- QUERY
|
||||
# Simple non-permutation
|
||||
insert into perm_nopart(int_col1, string_col, int_col2) values(1,'str',2)
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_nopart
|
||||
RELOAD insert_permutation_test.perm_nopart
|
||||
---- RESULTS
|
||||
: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_nopart
|
||||
---- RESULTS
|
||||
1,'str',2
|
||||
---- TYPES
|
||||
INT,STRING,INT
|
||||
====
|
||||
---- QUERY
|
||||
# Permute the int columns
|
||||
insert into perm_nopart(int_col2, string_col, int_col1) values(1,'str',2)
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_nopart
|
||||
RELOAD insert_permutation_test.perm_nopart
|
||||
---- RESULTS
|
||||
: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_nopart
|
||||
---- RESULTS
|
||||
2,'str',1
|
||||
---- TYPES
|
||||
INT,STRING,INT
|
||||
====
|
||||
---- QUERY
|
||||
# Leave out two columns, check they are assigned NULL
|
||||
insert into perm_nopart(int_col2) values(1)
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_nopart
|
||||
RELOAD insert_permutation_test.perm_nopart
|
||||
---- RESULTS
|
||||
: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_nopart
|
||||
---- RESULTS
|
||||
NULL,'NULL',1
|
||||
---- TYPES
|
||||
INT,STRING,INT
|
||||
====
|
||||
---- QUERY
|
||||
# Permute the partition columns
|
||||
insert into perm_part(p1, string_col, int_col1, p2) values(10,'str',1, 'hello')
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=10/p2=hello/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
1,'str',10,'hello'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Same thing - permute the partition columns, but invert their order relative to Hive
|
||||
insert into perm_part(p2, string_col, int_col1, p1) values('hello','str',1, 10)
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=10/p2=hello/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
1,'str',10,'hello'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Check NULL if only partition keys are mentioned
|
||||
insert into perm_part(p2, p1) values('hello', 10)
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=10/p2=hello/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
NULL,'NULL',10,'hello'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Check NULL if only partition keys are mentioned, one static
|
||||
insert into perm_part(p2) PARTITION(p1=10) values('hello')
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=10/p2=hello/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
NULL,'NULL',10,'hello'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Check dynamic keys mentioned in the PARTITION column are still looked for at the end of
|
||||
# the select-list
|
||||
insert into perm_part(int_col1, string_col) PARTITION(p1=10, p2) values(1,'perm_col','part_col')
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=10/p2=part_col/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
1,'perm_col',10,'part_col'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Check behaviour of empty permutation clause with no query statement
|
||||
insert into perm_part() PARTITION(p1=10, p2='foo')
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=10/p2=foo/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
NULL,'NULL',10,'foo'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Check behaviour of empty permutation clause
|
||||
insert into perm_part() PARTITION(p1, p2='foo') values(5)
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_part
|
||||
RELOAD insert_permutation_test.perm_part
|
||||
---- RESULTS
|
||||
p1=5/p2=foo/: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_part
|
||||
---- RESULTS
|
||||
NULL,'NULL',5,'foo'
|
||||
---- TYPES
|
||||
INT,STRING,INT,STRING
|
||||
====
|
||||
---- QUERY
|
||||
# Check behaviour of empty permutation clause with unpartitioned table
|
||||
insert into perm_nopart()
|
||||
---- SETUP
|
||||
RESET insert_permutation_test.perm_nopart
|
||||
RELOAD insert_permutation_test.perm_nopart
|
||||
---- RESULTS
|
||||
: 1
|
||||
====
|
||||
---- QUERY
|
||||
select * from perm_nopart
|
||||
---- RESULTS
|
||||
NULL,'NULL',NULL
|
||||
---- TYPES
|
||||
INT,STRING,INT
|
||||
====
|
||||
Reference in New Issue
Block a user