Files
impala/testdata/workloads/functional-query/queries/QueryTest/kudu_create.test
Thomas Tauber-Marshall 3833707dbd IMPALA-4466: Improve Kudu CRUD test coverage
The results in the test files were verified by hand.

This patch also introduces a new test section 'DML_RESULTS', which
takes the name of a table as a comment and the contents of the
table as its body and then verifies that the body matches the
actual contents of the table. This makes it easy to check that a
DML operation has the desired effect on the contents of a table,
rather than always having to add another test case that runs a
select on the table. For now, this section cannot be used in a
test along with the RESULTS or ERRORS sections.

TODO: Refactor the DML test case handling (IMPALA-4471)

Change-Id: Ib9e7afbef60186edb00a9d11fbe5a8c64931add6
Reviewed-on: http://gerrit.cloudera.org:8080/4953
Reviewed-by: Matthew Jacobs <mj@cloudera.com>
Tested-by: Internal Jenkins
2016-11-17 02:54:30 +00:00

126 lines
3.7 KiB
Plaintext

====
---- QUERY
create table t primary key (id) distribute by hash (id) into 3 buckets
stored as kudu
as select id, int_col from functional.alltypestiny;
select * from t;
---- RESULTS
0,0
1,1
2,0
3,1
4,0
5,1
6,0
7,1
---- TYPES
INT,INT
====
---- QUERY
# Boolean primary key column
create table tab (x int, y boolean, primary key(x, y))
distribute by hash (x) into 3 buckets stored as kudu
---- CATCH
NonRecoverableException: Key column may not have type of BOOL, FLOAT, or DOUBLE
====
---- QUERY
# Float primary key column
create table tab (x int, y float, primary key(x, y))
distribute by hash (x) into 3 buckets stored as kudu
---- CATCH
NonRecoverableException: Key column may not have type of BOOL, FLOAT, or DOUBLE
====
---- QUERY
# Primary keys should be declared first
# TODO: See KUDU-1709 for improving Kudu error messages.
create table tab (x int, y int, primary key(y))
distribute by hash (y) into 3 buckets stored as kudu
---- CATCH
NonRecoverableException: Got out-of-order key column: name: "y" type: INT32 is_key: true is_nullable: false cfile_block_size: 0
====
---- QUERY
# Small number of hash buckets
create table tab (a int, b int, c int, d int, primary key(a, b, c))
distribute by hash(a,b) into 8 buckets, hash(c) into 1 buckets stored as kudu
---- CATCH
NonRecoverableException: must have at least two hash buckets
====
---- QUERY
# Same column in multiple hash based distributions
create table tab (a int, b int, primary key (a))
distribute by hash (a) into 3 buckets, hash (a) into 2 buckets stored as kudu
---- CATCH
NonRecoverableException: hash bucket schema components must not contain columns in common
====
---- QUERY
# Same column referenced multiple times in the same hash-based distribution
create table tab (a int primary key) distribute by hash (a, a, a) into 3 buckets
stored as kudu
---- CATCH
NonRecoverableException: hash bucket schema components must not contain columns in common
====
---- QUERY
# Kudu table that uses Impala keywords as table name and column names
create table `add`(`analytic` int, `function` int, primary key(`analytic`, `function`))
distribute by hash (`analytic`) into 4 buckets, range (`function`)
(partition values <= 1, partition 1 < values <= 10, partition 10 < values) stored as kudu;
insert into `add` select id, int_col from functional.alltypestiny;
select * from `add`
---- RESULTS
0,0
1,1
2,0
3,1
4,0
5,1
6,0
7,1
---- TYPES
INT,INT
====
---- QUERY
# Test implicit casting/folding of partition values.
create table tab (a int primary key) distribute by range (a) (partition value = false)
stored as kudu
---- RESULTS
====
---- QUERY
# Invalid hostname
create table tdata_bogus_host (id int primary key, name string, valf float, vali bigint)
DISTRIBUTE BY RANGE (PARTITION 10 <= VALUES <= 30) STORED AS KUDU
TBLPROPERTIES('kudu.master_addresses' = 'bogus host name')
---- CATCH
Couldn't resolve this master's address bogus host name:7051
====
---- QUERY
# Non-existing host
create table tdata_non_existing_host
(id int primary key, name string, valf float, vali bigint)
DISTRIBUTE BY RANGE (PARTITION 10 <= VALUES <= 30) STORED AS KUDU
TBLPROPERTIES('kudu.master_addresses' = 'bogus.host.name')
---- CATCH
Couldn't resolve this master's address bogus.host.name:7051
====
---- QUERY
# Test that string case is ignored
create table ignore_column_case (Id int, NAME string, vAlf float, vali bigint,
primary key (Id, NAME)) DISTRIBUTE BY RANGE (PARTITION VALUE = (1, 'Martin'))
STORED AS KUDU
---- RESULTS
====
---- QUERY
insert into ignore_column_case values (1, 'Martin', 1.0, 10);
---- RESULTS
: 1
---- RUNTIME_PROFILE
NumModifiedRows: 1
NumRowErrors: 0
====
---- QUERY
select ID, nAmE, VALF, VALI from ignore_column_case where NaMe = 'Martin';
---- RESULTS
1,'Martin',1.0,10
---- TYPES
INT,STRING,FLOAT,BIGINT
====