http://git-wip-us.apache.org/repos/asf/impala/blob/84fffd46/testdata/workloads/functional-query/queries/QueryTest/kudu_update.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-query/queries/QueryTest/kudu_update.test b/testdata/workloads/functional-query/queries/QueryTest/kudu_update.test index 8d0d149..8520677 100644 --- a/testdata/workloads/functional-query/queries/QueryTest/kudu_update.test +++ b/testdata/workloads/functional-query/queries/QueryTest/kudu_update.test @@ -3,18 +3,19 @@ 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) + vald double null, valdec4 decimal(9,9) null, valdec8 decimal(18,2) null, + valdec16 decimal(38, 0) null) PARTITION BY RANGE (PARTITION VALUES < 10, PARTITION 10 <= VALUES < 30, PARTITION 30 <= VALUES <= 10000) STORED AS KUDU ---- RESULTS ==== ---- QUERY insert into tdata values -(1, "martin", 1.0, 232232323, cast('a' as string), true, 1, 2, 3), -(2, "david", cast(1.0 as float), 99398493939, cast('b' as string), false, 4, 5, 6), -(3, "todd", cast(1.0 as float), 993393939, "c", true, 7, 8, 9), -(40, "he", cast(0.0 as float), 43, cast('e' as string), false, 50, 60, 70), -(120, "she", cast(0.0 as float), 99, cast('f' as string), true, -1, 0, 1) +(1, "martin", 1.0, 232232323, cast('a' as string), true, 1, 2, 3, 0.000000001, 2.22, 3), +(2, "david", cast(1.0 as float), 99398493939, cast('b' as string), false, 4, 5, 6, 0.000000004, 5.55, 6), +(3, "todd", cast(1.0 as float), 993393939, "c", true, 7, 8, 9, 0.000000007, 8.88, 9), +(40, "he", cast(0.0 as float), 43, cast('e' as string), false, 50, 60, 70, 0.000000050, 66.60, 70), +(120, "she", cast(0.0 as float), 99, cast('f' as string), true, -1, 0, 1, -0.000000001, 0.00, 1) ---- RESULTS : 5 ---- RUNTIME_PROFILE @@ -30,15 +31,15 @@ update tdata set vali=43 where id = 1 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'a',true,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,99,'f',true,-1,0,1 +1,'martin',1.0,43,'a',true,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,99,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, equality on key, string @@ -49,15 +50,15 @@ update tdata set valv=cast('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as varchar(20)) wh NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',true,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,99,'f',true,-1,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',true,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,99,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, equality on key, boolean @@ -66,15 +67,15 @@ update tdata set valb=false where id = 1 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,99,'f',true,-1,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,99,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, equality on key, set to NULL @@ -83,15 +84,15 @@ update tdata set name=null where id = 40 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',1.0,993393939,'c',true,7,8,9 -40,'NULL',0.0,43,'e',false,50,60,70 -120,'she',0.0,99,'f',true,-1,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'NULL',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,99,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, equlity on key, set from NULL @@ -100,15 +101,15 @@ update tdata set name='he' where id = 40 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,99,'f',true,-1,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,99,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, equality on key, boundary value @@ -117,15 +118,15 @@ update tdata set vali = max_bigint() where id = 120 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',true,-1,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, inequality on key, float @@ -134,15 +135,15 @@ update tdata set valf = -1 where id > 2 and id < 4 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',-1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',true,-1,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,-1,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, inequality on key, tinyint @@ -151,15 +152,15 @@ update tdata set valt = 10 where id > 100 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',-1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',true,10,0,1 +1,'martin',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,10,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, equality on non-key, string @@ -168,15 +169,15 @@ update tdata set name='unknown' where name = 'martin' NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',-1.0,993393939,'c',true,7,8,9 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',true,10,0,1 +1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,993393939,'c',true,7,8,9,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,10,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # single row, inequality on non-key, double @@ -185,15 +186,32 @@ update tdata set vald = 0 where valf < 0 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,99398493939,'b',false,4,5,6 -3,'todd',-1.0,993393939,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',true,10,0,1 +1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,993393939,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,10,0,1,-0.000000001,0.00,1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL +==== +---- QUERY +# single row, inequality on non-key, decimal +update tdata set valdec4 = 0.000000001, valdec16 = -1 where valdec4 < 0 +---- RUNTIME_PROFILE +NumModifiedRows: 1 +NumRowErrors: 0 +---- LABELS +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 +---- DML_RESULTS: tdata +1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,99398493939,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,993393939,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,10,0,1,0.000000001,0.00,-1 +---- TYPES +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # multiple rows, predicate on key @@ -202,15 +220,15 @@ update tdata set vali=43 where id > 1 and id < 10 NumModifiedRows: 2 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'todd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',true,10,0,1 +1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',true,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # multiple rows, predicate on non-key @@ -219,15 +237,15 @@ update tdata set valb=false where name LIKE '%he' NumModifiedRows: 2 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'todd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',false,10,0,1 +1,'unknown',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',false,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # update the same row multiple times: cross join produces 5 identical updates @@ -236,15 +254,15 @@ update a set a.name='they' from tdata a, tdata b where a.id = 1 NumModifiedRows: 5 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'they',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'todd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',false,10,0,1 +1,'they',1.0,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',false,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # value of update is a constant expression @@ -253,15 +271,15 @@ update tdata set valf = 1 + 2 where id = 1 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'they',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'todd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',false,10,0,1 +1,'they',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'todd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',false,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # value of update is a non-constant expression @@ -270,15 +288,15 @@ update tdata set name = concat(name, name) where id % 2 = 1 NumModifiedRows: 2 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'theythey',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'toddtodd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',false,10,0,1 +1,'theythey',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'toddtodd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',false,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # error - update key column @@ -293,15 +311,15 @@ update tdata set name = 'none' where id = 10 NumModifiedRows: 0 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'theythey',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'toddtodd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',false,10,0,1 +1,'theythey',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'toddtodd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',false,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY # Try to update a row with a primary key value that is not covered by the existing range @@ -311,20 +329,20 @@ update tdata set vali = 10 where id = 10001 NumModifiedRows: 0 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC4, VALDEC8, VALDEC16 ---- DML_RESULTS: tdata -1,'theythey',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3 -2,'david',1.0,43,'b',false,4,5,6 -3,'toddtodd',-1.0,43,'c',true,7,8,0 -40,'he',0.0,43,'e',false,50,60,70 -120,'she',0.0,9223372036854775807,'f',false,10,0,1 +1,'theythey',3,43,'aaaaaaaaaaaaaaaaaaaa',false,1,2,3,0.000000001,2.22,3 +2,'david',1.0,43,'b',false,4,5,6,0.000000004,5.55,6 +3,'toddtodd',-1.0,43,'c',true,7,8,0,0.000000007,8.88,9 +40,'he',0.0,43,'e',false,50,60,70,0.000000050,66.60,70 +120,'she',0.0,9223372036854775807,'f',false,10,0,1,0.000000001,0.00,-1 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL,DECIMAL,DECIMAL ==== ---- QUERY insert into tdata select id, string_col, float_col, bigint_col, string_col, bool_col, tinyint_col, -smallint_col, double_col from functional_kudu.alltypes +smallint_col, double_col, NULL, NULL, NULL from functional_kudu.alltypes ---- RESULTS : 7295 ---- RUNTIME_PROFILE
http://git-wip-us.apache.org/repos/asf/impala/blob/84fffd46/testdata/workloads/functional-query/queries/QueryTest/kudu_upsert.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-query/queries/QueryTest/kudu_upsert.test b/testdata/workloads/functional-query/queries/QueryTest/kudu_upsert.test index 57aaa46..1c12f33 100644 --- a/testdata/workloads/functional-query/queries/QueryTest/kudu_upsert.test +++ b/testdata/workloads/functional-query/queries/QueryTest/kudu_upsert.test @@ -3,149 +3,149 @@ 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) + vald double null, valdec decimal(9, 0) 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) +(40,'he',0,43,'e',false,35,36,1.2,37), +(1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3), +(2,'david',1,43,'b',false,0,0,0,0), +(3,'todd',1,43,'c',true,3,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) +upsert into table tdata values (4, 'a', 0, 1, 'b', false, 1, 2, 1.5, 4) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'a',0,1,'b',false,1,2,1.5,4 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # VALUES, single row, all cols, results in update -upsert into table tdata values (4, 'b', -1, 1, 'a', true, 2, 3, 2.5) +upsert into table tdata values (4, 'b', -1, 1, 'a', true, 2, 3, 2.5, 5) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'b',-1,1,'a',true,2,3,2.5,5 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # VALUES, single row, all cols, insert NULL all types -upsert into table tdata values (10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) +upsert into table tdata values (10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'b',-1,1,'a',true,2,3,2.5,5 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # VALUES, single row, all cols, update NULL all types -upsert into table tdata values (4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) +upsert into table tdata values (4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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) +upsert into table tdata values (4, 'four', 5, 6, 'f', true, 7, 8, 7.5, 9) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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)) + min_smallint(), cast('inf' as double), cast(999999999 as decimal(9, 0))) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',NaN,-9223372036854775808,'',true,127,-32768,Infinity,999999999 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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)) + max_smallint(), cast('nan' as double), cast(-999999999 as decimal(9, 0))) ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # VALUES, single row, subset of cols, results in insert @@ -154,18 +154,18 @@ upsert into table tdata (id, name, vali, valb, vald) values (5, 'five', -5, NULL NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',NULL,-5,'NULL',NULL,NULL,NULL,0.5,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # VALUES, single row, subset of cols, results in update @@ -174,44 +174,44 @@ upsert into table tdata (id, name, valf, valv, valb) values (5, NULL, 0, 'six', NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'unknown',1,43,'aaaaaaaaaaaaaaaaaaaa',false,-1,-2,0,-3 +2,'david',1,43,'b',false,0,0,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'NULL',0,-5,'six',false,NULL,NULL,0.5,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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) +(1, 'one', NULL, 44, 'a', true, -1, -2, 0, 0), +(6, '', -6, 40, 'b', NULL, 0, 0, 10, 11), +(7, 'seven', 0, min_bigint(), NULL, true, 7, 1, 2, 3), +(2, 'you', cast('inf' as float), 0, 't', false, NULL, min_smallint(), 0, 0) ---- RUNTIME_PROFILE NumModifiedRows: 4 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'one',NULL,44,'a',true,-1,-2,0,0 +2,'you',Infinity,0,'t',false,NULL,-32768,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'NULL',0,-5,'six',false,NULL,NULL,0.5,NULL +6,'',-6,40,'b',NULL,0,0,10,11 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,3 ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # VALUES, multiple rows, subset of cols, no errors @@ -224,72 +224,72 @@ upsert into table tdata (id, valb, name, vali) values NumModifiedRows: 4 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'NULL',NULL,1,'a',true,-1,-2,0,0 +2,'you',Infinity,0,'t',false,NULL,-32768,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',0,10,'six',NULL,NULL,NULL,0.5,NULL +6,'',-6,40,'b',NULL,0,0,10,11 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,3 +8,'hello',NULL,2,'NULL',false,NULL,NULL,NULL,NULL +9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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 +select id, 'a', valf, vali, valv, NULL, valt, vals, 3, valdec from tdata where id = 1 ---- RUNTIME_PROFILE NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'he',0,43,'e',false,35,36,1.2,37 +1,'a',NULL,1,'a',NULL,-1,-2,3,0 +2,'you',Infinity,0,'t',false,NULL,-32768,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'four',5,6,'f',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',0,10,'six',NULL,NULL,NULL,0.5,NULL +6,'',-6,40,'b',NULL,0,0,10,11 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,3 +8,'hello',NULL,2,'NULL',false,NULL,NULL,NULL,NULL +9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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 +select id, valv, valf, vali, name, valb, valt, vals, vald, valdec from tdata where id % 2 = 0 ---- RUNTIME_PROFILE NumModifiedRows: 6 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'e',0,43,'he',false,35,36,1.2,37 +1,'a',NULL,1,'a',NULL,-1,-2,3,0 +2,'t',Infinity,0,'you',false,NULL,-32768,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'f',5,6,'four',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',0,10,'six',NULL,NULL,NULL,0.5,NULL +6,'b',-6,40,'',NULL,0,0,10,11 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,3 +8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL,NULL +9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # SELECT, subset of cols, single row, no errors @@ -299,23 +299,23 @@ select int_col, string_col, bigint_col from functional.alltypes where id = 0 NumModifiedRows: 1 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'e',0,43,'he',false,35,36,1.2,37 +1,'a',NULL,1,'a',NULL,-1,-2,3,0 +2,'t',Infinity,0,'you',false,NULL,-32768,0,0 +3,'todd',1,43,'c',true,3,3,3,3 +4,'f',5,6,'four',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',0,10,'six',NULL,NULL,NULL,0.5,NULL +6,'b',-6,40,'',NULL,0,0,10,11 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,3 +8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL,NULL +9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL,NULL +0,'NULL',NULL,0,'0',NULL,NULL,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- QUERY # SELECT, subset of cols, multiple rows, no errors @@ -325,27 +325,53 @@ select int_col, bool_col, string_col, tinyint_col from functional.alltypes where NumModifiedRows: 4 NumRowErrors: 0 ---- LABELS -ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC ---- 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 +40,'e',0,43,'he',false,35,36,1.2,37 +1,'1',NULL,1,'a',false,1,-2,3,0 +2,'2',Infinity,0,'you',true,2,-32768,0,0 +3,'3',1,43,'c',false,3,3,3,3 +4,'f',5,6,'four',true,7,8,7.5,9 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',0,10,'six',NULL,NULL,NULL,0.5,NULL +6,'b',-6,40,'',NULL,0,0,10,11 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,3 +8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL,NULL +9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL,NULL +0,'0',NULL,0,'0',true,0,NULL,NULL,NULL ---- TYPES -INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL +==== +---- QUERY +# SELECT, decimal column, multiple rows, no errors +upsert into table tdata (id, valdec) +select id, cast((valdec * 2) as decimal(9,0)) from tdata where valdec > 0 +---- RUNTIME_PROFILE +NumModifiedRows: 5 +NumRowErrors: 0 +---- LABELS +ID, NAME, VALF, VALI, VALV, VALB, VALT, VALS, VALD, VALDEC +---- DML_RESULTS: tdata +40,'e',0,43,'he',false,35,36,1.2,74 +1,'1',NULL,1,'a',false,1,-2,3,0 +2,'2',Infinity,0,'you',true,2,-32768,0,0 +3,'3',1,43,'c',false,3,3,3,6 +4,'f',5,6,'four',true,7,8,7.5,18 +10,'NULL',NULL,NULL,'NULL',NULL,NULL,NULL,NULL,NULL +2147483647,'',-Infinity,9223372036854775807,'',true,-128,32767,NaN,-999999999 +5,'five',0,10,'six',NULL,NULL,NULL,0.5,NULL +6,'b',-6,40,'',NULL,0,0,10,22 +7,'seven',0,-9223372036854775808,'NULL',true,7,1,2,6 +8,'NULL',NULL,2,'hello',false,NULL,NULL,NULL,NULL +9,'nine',NULL,9,'NULL',true,NULL,NULL,NULL,NULL +0,'0',NULL,0,'0',true,0,NULL,NULL,NULL +---- TYPES +INT,STRING,FLOAT,BIGINT,STRING,BOOLEAN,TINYINT,SMALLINT,DOUBLE,DECIMAL ==== ---- 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) +upsert into table tdata values (null, '', 0, 0, cast('' as VARCHAR(20)), false, 0, 0, 0, null) ---- RUNTIME_PROFILE NumModifiedRows: 0 NumRowErrors: 1 @@ -360,10 +386,10 @@ 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) +(3,'todd',1,43,'c',true,3,3,3,null), +(4,'four',5,6,'f',true,7,8,7.5,null), +(6,'',-6,40,'b',NULL,0,0,10,null), +(NULL,'seven',0,0,'NULL',true,7,1,2,null) ---- RUNTIME_PROFILE NumModifiedRows: 3 NumRowErrors: 1 http://git-wip-us.apache.org/repos/asf/impala/blob/84fffd46/tests/query_test/test_decimal_queries.py ---------------------------------------------------------------------- diff --git a/tests/query_test/test_decimal_queries.py b/tests/query_test/test_decimal_queries.py index a250ae2..3a14ed3 100644 --- a/tests/query_test/test_decimal_queries.py +++ b/tests/query_test/test_decimal_queries.py @@ -43,7 +43,7 @@ class TestDecimalQueries(ImpalaTestSuite): cls.ImpalaTestMatrix.add_constraint(lambda v:\ (v.get_value('table_format').file_format == 'text' and v.get_value('table_format').compression_codec == 'none') or - v.get_value('table_format').file_format == 'parquet') + v.get_value('table_format').file_format in ['parquet', 'kudu']) def test_queries(self, vector): self.run_test_case('QueryTest/decimal', vector) @@ -60,7 +60,7 @@ class TestDecimalExprs(ImpalaTestSuite): def add_test_dimensions(cls): super(TestDecimalExprs, cls).add_test_dimensions() cls.ImpalaTestMatrix.add_constraint(lambda v: - (v.get_value('table_format').file_format == 'parquet')) + (v.get_value('table_format').file_format in ['parquet', 'kudu'])) def test_exprs(self, vector): self.run_test_case('QueryTest/decimal-exprs', vector) http://git-wip-us.apache.org/repos/asf/impala/blob/84fffd46/tests/query_test/test_kudu.py ---------------------------------------------------------------------- diff --git a/tests/query_test/test_kudu.py b/tests/query_test/test_kudu.py index ddf59f2..3d7b727 100644 --- a/tests/query_test/test_kudu.py +++ b/tests/query_test/test_kudu.py @@ -357,7 +357,7 @@ class TestKuduOperations(KuduTestSuite): pytest.skip("Only runs in exhaustive to reduce core time.") table_name = "%s.storage_attrs" % unique_database types = ['boolean', 'tinyint', 'smallint', 'int', 'bigint', 'float', 'double', \ - 'string', 'timestamp'] + 'string', 'timestamp', 'decimal(9, 2)', 'decimal(18)', 'decimal(38, 38)'] create_query = "create table %s (id int primary key" % table_name for t in types: @@ -485,6 +485,7 @@ class TestCreateExternalTable(KuduTestSuite): def test_col_types(self, cursor, kudu_client): """Check that a table can be created using all available column types.""" + # TODO: Add DECIMAL when the Kudu python client supports decimal kudu_types = [STRING, BOOL, DOUBLE, FLOAT, INT16, INT32, INT64, INT8] with self.temp_kudu_table(kudu_client, kudu_types) as kudu_table: impala_table_name = self.get_kudu_table_base_name(kudu_table.name)