mirror of
https://github.com/apache/impala.git
synced 2025-12-30 21:02:41 -05:00
Before this commit it was quite random which DDL oprations returned a result set and which didn't. With this commit, every DDL operations return a summary of its execution. They declare their result set schema in Frontend.java, and provide the summary in CalatogOpExecutor.java. Updated the tests according to the new behavior. Change-Id: Ic542fb8e49e850052416ac663ee329ee3974e3b9 Reviewed-on: http://gerrit.cloudera.org:8080/9090 Reviewed-by: Alex Behm <alex.behm@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
339 lines
7.1 KiB
Plaintext
339 lines
7.1 KiB
Plaintext
====
|
|
---- QUERY
|
|
create database insert_permutation_test location
|
|
'$FILESYSTEM_PREFIX/test-warehouse/insert_permutation_test'
|
|
---- RESULTS
|
|
'Database has been created.'
|
|
====
|
|
---- 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
|
|
'Table has been created.'
|
|
====
|
|
---- 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
|
|
====
|
|
---- QUERY
|
|
# Perform the same set of queries, but with SELECT clauses rather than VALUES
|
|
# Simple non-permutation
|
|
insert into perm_nopart(int_col1, string_col, int_col2) select 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) select 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) select 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) select 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) select '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) select '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) select '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
|
|
# Now some queries that use SELECT FROM
|
|
# Simple non-permutation
|
|
insert into perm_nopart(int_col1, string_col, int_col2) select 1,'str',2 FROM
|
|
functional.alltypes LIMIT 2
|
|
---- SETUP
|
|
RESET insert_permutation_test.perm_nopart
|
|
---- RESULTS
|
|
: 2
|
|
====
|
|
---- QUERY
|
|
select * from perm_nopart
|
|
---- RESULTS
|
|
1,'str',2
|
|
1,'str',2
|
|
---- TYPES
|
|
INT,STRING,INT
|
|
====
|
|
---- QUERY
|
|
insert into perm_nopart(int_col1) select id FROM functional.alltypes ORDER BY ID LIMIT 2
|
|
---- SETUP
|
|
RESET insert_permutation_test.perm_nopart
|
|
---- RESULTS
|
|
: 2
|
|
====
|
|
---- QUERY
|
|
select * from perm_nopart
|
|
---- RESULTS
|
|
0,'NULL',NULL
|
|
1,'NULL',NULL
|
|
---- TYPES
|
|
INT,STRING,INT
|
|
====
|