mirror of
https://github.com/apache/impala.git
synced 2026-01-04 09:00:56 -05:00
This commit also removes the now unused `DISTRIBUTE`, `SPLIT`, and `BUCKETS` keywords that were going to be newly released in Impala 2.6, but are now unused. Additionally, a few remaining uses of the `DISTRIBUTE BY` syntax has been switched to `PARTITION BY`. Change-Id: I32fdd5ef26c532f7a30220db52bdfbf228165922 Reviewed-on: http://gerrit.cloudera.org:8080/5382 Reviewed-by: Matthew Jacobs <mj@cloudera.com> Tested-by: Internal Jenkins
493 lines
16 KiB
Plaintext
493 lines
16 KiB
Plaintext
====
|
|
---- QUERY
|
|
create table tdata
|
|
(id int primary key, name string null, valf float null, vali bigint null,
|
|
valv string null, valb boolean null, valt tinyint null, vals smallint null,
|
|
vald double null)
|
|
PARTITION BY RANGE (PARTITION VALUES < 10, PARTITION 10 <= VALUES < 30,
|
|
PARTITION 30 <= VALUES) STORED AS KUDU
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
insert into table tdata values
|
|
(40,'he',0,43,'e',false,35,36,1.2),
|
|
(1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0),
|
|
(2,'david',1,43,'b',false,0,0,0),
|
|
(3,'todd',1,43,'c',true,3,3,3)
|
|
---- RESULTS
|
|
: 4
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, results in insert
|
|
upsert into table tdata values (4, 'a', 0, 1, 'b', false, 1, 2, 1.5)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'a',0,1,'b',false,1,2,1.5
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, results in update
|
|
upsert into table tdata values (4, 'b', -1, 1, 'a', true, 2, 3, 2.5)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'b',-1,1,'a',true,2,3,2.5
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, insert NULL all types
|
|
upsert into table tdata values (10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'b',-1,1,'a',true,2,3,2.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, update NULL all types
|
|
upsert into table tdata values (4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, update from NULL all types
|
|
upsert into table tdata values (4, 'four', 5, 6, 'f', true, 7, 8, 7.5)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, insert boundary values
|
|
upsert into table tdata values
|
|
(max_int(), '', cast('nan' as float), min_bigint(), '', true, max_tinyint(),
|
|
min_smallint(), cast('inf' as double))
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',NaN,-9223372036854775808,'',true,127,-32768,Infinity
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, update boundary values
|
|
upsert into table tdata values
|
|
(max_int(), '', cast('-inf' as float), max_bigint(), '', true, min_tinyint(),
|
|
max_smallint(), cast('nan' as double))
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, subset of cols, results in insert
|
|
upsert into table tdata (id, name, vali, valb, vald) values (5, 'five', -5, NULL, 0.5)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'five',NULL,-5,'NULL',NULL,NULL,NULL,0.5
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, subset of cols, results in update
|
|
upsert into table tdata (id, name, valf, valv, valb) values (5, NULL, 0, 'six', false)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0
|
|
2,'david',1,43,'b',false,0,0,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'NULL',0,-5,'six',false,NULL,NULL,0.5
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, multiple rows, all cols, no errors
|
|
upsert into table tdata values
|
|
(1, 'one', NULL, 44, 'a', true, -1, -2, 0),
|
|
(6, '', -6, 40, 'b', NULL, 0, 0, 10),
|
|
(7, 'seven', 0, min_bigint(), NULL, true, 7, 1, 2),
|
|
(2, 'you', cast('inf' as float), 0, 't', false, NULL, min_smallint(), 0)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 4
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'one',NULL,44,'a',true,-1,-2,0
|
|
2,'you',Infinity,0,'t',false,NULL,-32768,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'NULL',0,-5,'six',false,NULL,NULL,0.5
|
|
6,'',-6,40,'b',NULL,0,0,10
|
|
7,'seven',0,-9223372036854775808,'NULL',true,7,1,2
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, multiple rows, subset of cols, no errors
|
|
upsert into table tdata (id, valb, name, vali) values
|
|
(1, true, NULL, 1),
|
|
(8, false, 'hello', 2),
|
|
(5, NULL, 'five', 10),
|
|
(9, true, 'nine', 9)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 4
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'NULL',NULL,1,'a',true,-1,-2,0
|
|
2,'you',Infinity,0,'t',false,NULL,-32768,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'five',0,10,'six',NULL,NULL,NULL,0.5
|
|
6,'',-6,40,'b',NULL,0,0,10
|
|
7,'seven',0,-9223372036854775808,'NULL',true,7,1,2
|
|
8,'hello',NULL,2,'NULL',false,NULL,NULL,NULL
|
|
9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# SELECT, all cols, single row, no errors
|
|
upsert into table tdata
|
|
select id, 'a', valf, vali, valv, NULL, valt, vals, 3 from tdata where id = 1
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'he',0,43,'e',false,35,36,1.2
|
|
1,'a',NULL,1,'a',NULL,-1,-2,3
|
|
2,'you',Infinity,0,'t',false,NULL,-32768,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'four',5,6,'f',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'five',0,10,'six',NULL,NULL,NULL,0.5
|
|
6,'',-6,40,'b',NULL,0,0,10
|
|
7,'seven',0,-9223372036854775808,'NULL',true,7,1,2
|
|
8,'hello',NULL,2,'NULL',false,NULL,NULL,NULL
|
|
9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# SELECT, all cols, multiple rows, no errors
|
|
upsert into table tdata
|
|
select id, valv, valf, vali, name, valb, valt, vals, vald from tdata where id % 2 = 0
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 6
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'e',0,43,'he',false,35,36,1.2
|
|
1,'a',NULL,1,'a',NULL,-1,-2,3
|
|
2,'t',Infinity,0,'you',false,NULL,-32768,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'f',5,6,'four',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'five',0,10,'six',NULL,NULL,NULL,0.5
|
|
6,'b',-6,40,'',NULL,0,0,10
|
|
7,'seven',0,-9223372036854775808,'NULL',true,7,1,2
|
|
8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL
|
|
9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# SELECT, subset of cols, single row, no errors
|
|
upsert into table tdata (id, valv, vali)
|
|
select int_col, string_col, bigint_col from functional.alltypes where id = 0
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 1
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'e',0,43,'he',false,35,36,1.2
|
|
1,'a',NULL,1,'a',NULL,-1,-2,3
|
|
2,'t',Infinity,0,'you',false,NULL,-32768,0
|
|
3,'todd',1,43,'c',true,3,3,3
|
|
4,'f',5,6,'four',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'five',0,10,'six',NULL,NULL,NULL,0.5
|
|
6,'b',-6,40,'',NULL,0,0,10
|
|
7,'seven',0,-9223372036854775808,'NULL',true,7,1,2
|
|
8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL
|
|
9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL
|
|
0,'NULL',NULL,0,'0',NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# SELECT, subset of cols, multiple rows, no errors
|
|
upsert into table tdata (id, valb, name, valt)
|
|
select int_col, bool_col, string_col, tinyint_col from functional.alltypes where id < 4
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 4
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD
|
|
---- DML_RESULTS: tdata
|
|
40,'e',0,43,'he',false,35,36,1.2
|
|
1,'1',NULL,1,'a',false,1,-2,3
|
|
2,'2',Infinity,0,'you',true,2,-32768,0
|
|
3,'3',1,43,'c',false,3,3,3
|
|
4,'f',5,6,'four',true,7,8,7.5
|
|
10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL
|
|
2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN
|
|
5,'five',0,10,'six',NULL,NULL,NULL,0.5
|
|
6,'b',-6,40,'',NULL,0,0,10
|
|
7,'seven',0,-9223372036854775808,'NULL',true,7,1,2
|
|
8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL
|
|
9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL
|
|
0,'0',NULL,0,'0',true,0,NULL,NULL
|
|
---- TYPES
|
|
INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, all cols, null for non-nullable column
|
|
upsert into table tdata values (null, '', 0, 0, cast('' as VARCHAR(20)), false, 0, 0, 0)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 0
|
|
NumRowErrors: 1
|
|
====
|
|
---- QUERY
|
|
# VALUES, single row, subset of cols, null for non-nullable column
|
|
upsert into table tdata (id, name) values (null, '')
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 0
|
|
NumRowErrors: 1
|
|
====
|
|
---- QUERY
|
|
# VALUES, multiple rows, all cols, null for non-nullable column
|
|
upsert into table tdata values
|
|
(3,'todd',1,43,'c',true,3,3,3),
|
|
(4,'four',5,6,'f',true,7,8,7.5),
|
|
(6,'',-6,40,'b',NULL,0,0,10),
|
|
(NULL,'seven',0,0,'NULL',true,7,1,2)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 3
|
|
NumRowErrors: 1
|
|
====
|
|
---- QUERY
|
|
# VALUES, multiple rows, subset of cols, null for non-nullable column
|
|
upsert into table tdata (id, valv, valt, vals) values
|
|
(0, 'bbb', 1, 2),
|
|
(NULL, 'aaa', 2, 1),
|
|
(10, 'ccc', 11, 12)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 2
|
|
NumRowErrors: 1
|
|
====
|
|
---- QUERY
|
|
# high cardinality
|
|
upsert into table tdata (id, valb, name, valt)
|
|
select int_col, bool_col, string_col, tinyint_col from functional.alltypes limit 100
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 100
|
|
NumRowErrors: 0
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
create table multiple_key_cols
|
|
(string_col string, bigint_col bigint, tinyint_col tinyint, smallint_col smallint,
|
|
bool_col boolean null, int_col int null, double_col double null,
|
|
float_col float null, primary key (string_col, bigint_col, tinyint_col, smallint_col))
|
|
PARTITION BY HASH (string_col) PARTITIONS 16 STORED AS KUDU
|
|
====
|
|
---- QUERY
|
|
insert into multiple_key_cols values
|
|
('a', 1, 2, 3, true, 4, 5, NULL),
|
|
('b', 1, 2, 3, false, 7, NULL, 9)
|
|
---- RESULTS
|
|
: 2
|
|
====
|
|
---- QUERY
|
|
# VALUES, multiple key columns, all cols
|
|
upsert into table multiple_key_cols values
|
|
('a', 1, 2, 3, true, NULL, 5, 6),
|
|
('a', -1, -2, -3, true, 0, NULL, NULL),
|
|
('c', 0, 0, 0, NULL, 10, 20, 30)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 3
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
STRING_COL, BIGINT_COL, TINYINT_COL, SMALLINT_COL, BOOL_COL, INT_COL, DOUBLE_COL, FLOAT_COL
|
|
---- DML_RESULTS: multiple_key_cols
|
|
'a',1,2,3,true,NULL,5,6
|
|
'a',-1,-2,-3,true,0,NULL,NULL
|
|
'b',1,2,3,false,7,NULL,9
|
|
'c',0,0,0,NULL,10,20,30
|
|
---- TYPES
|
|
STRING,BIGINT,TINYINT,SMALLINT,BOOLEAN,INT,DOUBLE,FLOAT
|
|
====
|
|
---- QUERY
|
|
# VALUES, multiple key columns, subset of cols
|
|
upsert into table multiple_key_cols
|
|
(string_col, bool_col, bigint_col, smallint_col, tinyint_col) values
|
|
('a', false, 1, 3, 2),
|
|
('d', NULL, 0, 1, 2),
|
|
('b', true, 1, 3, 3)
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 3
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
STRING_COL, BIGINT_COL, TINYINT_COL, SMALLINT_COL, BOOL_COL, INT_COL, DOUBLE_COL, FLOAT_COL
|
|
---- DML_RESULTS: multiple_key_cols
|
|
'a',1,2,3,false,NULL,5,6
|
|
'a',-1,-2,-3,true,0,NULL,NULL
|
|
'b',1,2,3,false,7,NULL,9
|
|
'c',0,0,0,NULL,10,20,30
|
|
'd',0,2,1,NULL,NULL,NULL,NULL
|
|
'b',1,3,3,true,NULL,NULL,NULL
|
|
---- TYPES
|
|
STRING,BIGINT,TINYINT,SMALLINT,BOOLEAN,INT,DOUBLE,FLOAT
|
|
====
|
|
---- QUERY
|
|
# SELECT, multiple key columns, all cols
|
|
upsert into table multiple_key_cols
|
|
select string_col, bigint_col, tinyint_col, smallint_col, false, -1, -2, -3
|
|
from multiple_key_cols where string_col = 'a'
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 2
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
STRING_COL, BIGINT_COL, TINYINT_COL, SMALLINT_COL, BOOL_COL, INT_COL, DOUBLE_COL, FLOAT_COL
|
|
---- DML_RESULTS: multiple_key_cols
|
|
'a',1,2,3,false,-1,-2,-3
|
|
'a',-1,-2,-3,false,-1,-2,-3
|
|
'b',1,2,3,false,7,NULL,9
|
|
'c',0,0,0,NULL,10,20,30
|
|
'd',0,2,1,NULL,NULL,NULL,NULL
|
|
'b',1,3,3,true,NULL,NULL,NULL
|
|
---- TYPES
|
|
STRING,BIGINT,TINYINT,SMALLINT,BOOLEAN,INT,DOUBLE,FLOAT
|
|
====
|
|
---- QUERY
|
|
# SELECT, multiple key columns, subset of cols
|
|
upsert into table multiple_key_cols
|
|
(string_col, float_col, bigint_col, tinyint_col, double_col, smallint_col)
|
|
select 'b', float_col, 1, tinyint_col, double_col, 3
|
|
from functional.alltypes where id = 2 or id = 3
|
|
---- RUNTIME_PROFILE
|
|
NumModifiedRows: 2
|
|
NumRowErrors: 0
|
|
---- LABELS
|
|
STRING_COL, BIGINT_COL, TINYINT_COL, SMALLINT_COL, BOOL_COL, INT_COL, DOUBLE_COL, FLOAT_COL
|
|
---- DML_RESULTS: multiple_key_cols
|
|
'a',1,2,3,false,-1,-2,-3
|
|
'a',-1,-2,-3,false,-1,-2,-3
|
|
'b',1,2,3,false,7,20.2,2.200000047683716
|
|
'c',0,0,0,NULL,10,20,30
|
|
'd',0,2,1,NULL,NULL,NULL,NULL
|
|
'b',1,3,3,true,NULL,30.3,3.299999952316284
|
|
---- TYPES
|
|
STRING,BIGINT,TINYINT,SMALLINT,BOOLEAN,INT,DOUBLE,FLOAT
|
|
====
|
|
---- QUERY
|
|
# missing key column
|
|
upsert into table multiple_key_cols
|
|
(string_col, tinyint_col, smallint_col) values ('a', 1, 1)
|
|
---- CATCH
|
|
All primary key columns must be specified for UPSERTing into Kudu tables. Missing columns are: bigint_col
|
|
====
|