Files
impala/testdata/workloads/functional-query/queries/QueryTest/insert_permutation.test
Lenni Kuff 76fa3b2ded Update DDL to support 'STORED AS PARQUET' and 'STORED AS AVRO' syntax
This change updates our DDL syntax support to allow for using 'STORED AS PARQUET'
as well as 'STORED AS PARQUETFILE'. Moving forward we should prefer the new syntax,
but continue to support the old.  I made the same change for 'AVROFILE', but since
we have not yet documented the 'AVROFILE' syntax I left out support for the old syntax.

Change-Id: I10c73a71a94ee488c9ae205485777b58ab8957c9
Reviewed-on: http://gerrit.ent.cloudera.com:8080/1053
Reviewed-by: Marcel Kornacker <marcel@cloudera.com>
Tested-by: jenkins
2014-01-08 10:54:18 -08:00

197 lines
4.2 KiB
Plaintext

====
---- 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);
create table parquet_part(int_col1 int, string_col string)
partitioned by (p1 int, p2 string) stored as parquet;
---- 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
---- 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
---- 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
---- 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
---- 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
---- 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
---- 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
---- 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
---- 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
---- 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
---- 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
---- RESULTS
: 1
====
---- QUERY
select * from perm_nopart
---- RESULTS
NULL,'NULL',NULL
---- TYPES
INT,STRING,INT
====
---- QUERY
# Test inserting NULLs due to an incomplete column mapping into a Parquet table.
# Regression test against IMPALA-671.
insert into parquet_part() partition(p1, p2='foo') values(2)
---- RESULTS
p1=2/p2=foo/: 1
====
---- QUERY
select * from parquet_part
---- RESULTS
NULL,'NULL',2,'foo'
---- TYPES
INT,STRING,INT,STRING
====