mirror of
https://github.com/apache/impala.git
synced 2026-01-10 18:00:14 -05:00
I used some ideas from Alex Leblang's abandoned patch: https://gerrit.cloudera.org/#/c/137/ in order to run .test files through HS2. The advantage of using Impyla is that much of the code will be reusable for any Python client implementing the standard Python dbapi and does not require us implementing yet another thrift client. This gives us better coverage of non-trivial result sets from HS2, including handling of NULLs, error logs and more interesting result sets than the basic HS2 tests. I added HS2 coverage to TestQueries, which has a reasonable variety of queries and covers the data types in alltypes. I also added TestDecimalQueries, TestStringQuery and TestCharFormats to get coverage of DECIMAL, CHAR and VARCHAR that aren't in alltypes. Coverage of results sets with NULLs was limited so I added a couple of queries. Places where results differ from Beeswax: * Impyla is a Python dbapi client so must convert timestamps into python datetime objects, which only have microsecond precision. Therefore result timestamps within nanosecond precision are truncated. * The HS2 interface reports the NULL type as BOOLEAN as a workaround for IMPALA-914. * The Beeswax interface reported VARCHAR as STRING, but HS2 reports VARCHAR. I dealt with different results by adding additional result sections so that the expected differences between the clients/protocols were explicit. Limitations: * Not all of the same methods are implemented as for beeswax, so some tests that have more complicated interactions with the client will not work with HS2 yet. * We don't have a way to get the affected row count for inserts. I also simplified the ImpalaConnection API by removing some unnecessary methods and moved some generic methods to the base class. Testing: * Confirmed that it detected IMPALA-7588 by re-applying the buggy patch. * Ran exhaustive and CentOS6 tests. Change-Id: I9908ccc4d3df50365be8043b883cacafca52661e Reviewed-on: http://gerrit.cloudera.org:8080/11546 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
421 lines
9.5 KiB
Plaintext
421 lines
9.5 KiB
Plaintext
====
|
|
---- QUERY
|
|
select count(*),count(c1),count(c2) from decimal_tiny
|
|
---- RESULTS
|
|
100,100,100
|
|
---- TYPES
|
|
bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select * from decimal_tiny where c1 = cast(0.1111 as decimal(5,4))
|
|
---- RESULTS
|
|
0.1111,101.22222,0.1
|
|
---- TYPES
|
|
DECIMAL, DECIMAL, DECIMAL
|
|
====
|
|
---- QUERY
|
|
select count(*) from decimal_tiny where c1 != cast(0.1111 as decimal(5,4))
|
|
---- RESULTS
|
|
99
|
|
---- TYPES
|
|
bigint
|
|
====
|
|
---- QUERY
|
|
select count(*) from decimal_tiny where c1 = c2
|
|
---- RESULTS
|
|
0
|
|
---- TYPES
|
|
bigint
|
|
====
|
|
---- QUERY
|
|
select min(c1), max(c2) from decimal_tiny
|
|
---- RESULTS
|
|
0.0000,220.99978
|
|
---- TYPES
|
|
decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select sum(d1), sum(d2), sum(d3), sum(d4), sum(d5) from decimal_tbl
|
|
---- RESULTS
|
|
161111,3332,13717.2838257900,0.61728394500000000000000000000000000000,12361.02889
|
|
---- TYPES
|
|
decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select count(*), sum(d1), sum(d2), sum(d3), sum(d4), sum(d5) from decimal_tbl where d6 = 1
|
|
---- RESULTS
|
|
5,161111,3332,13717.2838257900,0.61728394500000000000000000000000000000,12361.02889
|
|
---- TYPES
|
|
bigint,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select count(*), sum(d1), sum(d2), sum(d3), sum(d4), sum(d5) from decimal_tbl where d6 = 0
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
bigint,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select c3, count(*) from decimal_tiny group by c3
|
|
---- RESULTS
|
|
0.3,10
|
|
0.5,10
|
|
0.8,10
|
|
0.4,10
|
|
0.9,10
|
|
0.2,10
|
|
0.0,10
|
|
0.6,10
|
|
0.7,10
|
|
0.1,10
|
|
---- TYPES
|
|
decimal,bigint
|
|
====
|
|
---- QUERY
|
|
select c3, max(c1 + c2) from decimal_tiny group by c3
|
|
having max(c1 + c2) > cast('225' as decimal(18,5))
|
|
---- RESULTS
|
|
0.5,226.66540
|
|
0.8,230.66536
|
|
0.4,225.33208
|
|
0.9,231.99868
|
|
0.6,227.99872
|
|
0.7,229.33204
|
|
---- TYPES
|
|
decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select ndv(c1), distinctpc(c2), distinctpcsa(c1 + c2) from decimal_tiny
|
|
---- RESULTS
|
|
98,94,103
|
|
---- TYPES
|
|
bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select ndv(d1), distinctpc(d1), distinctpcsa(d1), count(distinct d1)
|
|
from decimal_tbl;
|
|
---- RESULTS
|
|
4,5,4,4
|
|
---- TYPES
|
|
bigint,bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select c1 + c2 from decimal_tiny order by 1 limit 5
|
|
---- RESULTS
|
|
100.00000
|
|
101.33332
|
|
102.66664
|
|
103.99996
|
|
105.33328
|
|
---- TYPES
|
|
decimal
|
|
====
|
|
---- QUERY
|
|
select c1 + c2 from decimal_tiny order by 1 desc limit 5
|
|
---- RESULTS
|
|
231.99868
|
|
230.66536
|
|
229.33204
|
|
227.99872
|
|
226.66540
|
|
---- TYPES
|
|
decimal
|
|
====
|
|
---- QUERY
|
|
select t1.*,t2.* from decimal_tiny t1
|
|
join decimal_tiny t2
|
|
on t1.c1=t2.c1
|
|
order by t1.c1 desc limit 3
|
|
---- RESULTS
|
|
10.9989,220.99978,0.9,10.9989,220.99978,0.9
|
|
10.8878,219.77756,0.8,10.8878,219.77756,0.8
|
|
10.7767,218.55534,0.7,10.7767,218.55534,0.7
|
|
---- TYPES
|
|
DECIMAL, DECIMAL, DECIMAL, DECIMAL, DECIMAL, DECIMAL
|
|
====
|
|
---- QUERY
|
|
select count(d1), count(d2), count(d3), count(d4), count(d5), count(d6) from decimal_tbl;
|
|
---- RESULTS
|
|
5,5,5,5,5,5
|
|
---- TYPES
|
|
bigint,bigint,bigint,bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select d1, count(d2), count(d3), count(d4), count(d5), count(d6) from decimal_tbl group by d1;
|
|
---- RESULTS
|
|
132842,1,1,1,1,1
|
|
2345,1,1,1,1,1
|
|
1234,1,1,1,1,1
|
|
12345,2,2,2,2,2
|
|
---- TYPES
|
|
decimal,bigint,bigint,bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select min(d1), min(d2), min(d3), min(d4), min(d5), min(d6) from decimal_tbl;
|
|
---- RESULTS
|
|
1234,111,1.2345678900,0.12345678900000000000000000000000000000,0.10000,1
|
|
---- TYPES
|
|
decimal,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select d1, min(d2), min(d3), min(d4), min(d5), min(d6) from decimal_tbl group by d1;
|
|
---- RESULTS
|
|
132842,333,12345.6789000000,0.12345678900000000000000000000000000000,0.77889,1
|
|
2345,111,12.3456789000,0.12345678900000000000000000000000000000,3.14100,1
|
|
1234,2222,1.2345678900,0.12345678900000000000000000000000000000,12345.78900,1
|
|
12345,333,123.4567890000,0.12345678900000000000000000000000000000,0.10000,1
|
|
---- TYPES
|
|
decimal,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select max(d1), max(d2), max(d3), max(d4), max(d5), max(d6) from decimal_tbl;
|
|
---- RESULTS
|
|
132842,2222,12345.6789000000,0.12345678900000000000000000000000000000,12345.78900,1
|
|
---- TYPES
|
|
decimal,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select d1, max(d2), max(d3), max(d4), max(d5), max(d6) from decimal_tbl group by d1;
|
|
---- RESULTS
|
|
132842,333,12345.6789000000,0.12345678900000000000000000000000000000,0.77889,1
|
|
2345,111,12.3456789000,0.12345678900000000000000000000000000000,3.14100,1
|
|
1234,2222,1.2345678900,0.12345678900000000000000000000000000000,12345.78900,1
|
|
12345,333,1234.5678900000,0.12345678900000000000000000000000000000,11.22000,1
|
|
---- TYPES
|
|
decimal,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
select ndv(d1), ndv(d2), ndv(d3), ndv(d4), ndv(d5), ndv(d6) from decimal_tbl;
|
|
---- RESULTS
|
|
4,3,5,1,5,1
|
|
---- TYPES
|
|
bigint,bigint,bigint,bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select d1, ndv(d2), ndv(d3), ndv(d4), ndv(d5), ndv(d6) from decimal_tbl group by d1;
|
|
---- RESULTS
|
|
132842,1,1,1,1,1
|
|
2345,1,1,1,1,1
|
|
1234,1,1,1,1,1
|
|
12345,1,2,1,2,1
|
|
---- TYPES
|
|
decimal,bigint,bigint,bigint,bigint,bigint
|
|
====
|
|
---- QUERY
|
|
select a.c1 from decimal_tiny a left semi join decimal_tiny b on a.c1=b.c3
|
|
---- RESULTS
|
|
0.0000
|
|
---- TYPES
|
|
decimal
|
|
====
|
|
---- QUERY
|
|
select * from decimal_tiny
|
|
---- RESULTS
|
|
0.0000,100.00000,0.0
|
|
0.1111,101.22222,0.1
|
|
0.2222,102.44444,0.2
|
|
0.3333,103.66666,0.3
|
|
0.4444,104.88888,0.4
|
|
0.5555,106.11110,0.5
|
|
0.6666,107.33332,0.6
|
|
0.7777,108.55554,0.7
|
|
0.8888,109.77776,0.8
|
|
0.9999,110.99998,0.9
|
|
1.1110,112.22220,0.0
|
|
1.2221,113.44442,0.1
|
|
1.3332,114.66664,0.2
|
|
1.4443,115.88886,0.3
|
|
1.5554,117.11108,0.4
|
|
1.6665,118.33330,0.5
|
|
1.7776,119.55552,0.6
|
|
1.8887,120.77774,0.7
|
|
1.9998,121.99996,0.8
|
|
2.1109,123.22218,0.9
|
|
2.2220,124.44440,0.0
|
|
2.3331,125.66662,0.1
|
|
2.4442,126.88884,0.2
|
|
2.5553,128.11106,0.3
|
|
2.6664,129.33328,0.4
|
|
2.7775,130.55550,0.5
|
|
2.8886,131.77772,0.6
|
|
2.9997,132.99994,0.7
|
|
3.1108,134.22216,0.8
|
|
3.2219,135.44438,0.9
|
|
3.3330,136.66660,0.0
|
|
3.4441,137.88882,0.1
|
|
3.5552,139.11104,0.2
|
|
3.6663,140.33326,0.3
|
|
3.7774,141.55548,0.4
|
|
3.8885,142.77770,0.5
|
|
3.9996,143.99992,0.6
|
|
4.1107,145.22214,0.7
|
|
4.2218,146.44436,0.8
|
|
4.3329,147.66658,0.9
|
|
4.4440,148.88880,0.0
|
|
4.5551,150.11102,0.1
|
|
4.6662,151.33324,0.2
|
|
4.7773,152.55546,0.3
|
|
4.8884,153.77768,0.4
|
|
4.9995,154.99990,0.5
|
|
5.1106,156.22212,0.6
|
|
5.2217,157.44434,0.7
|
|
5.3328,158.66656,0.8
|
|
5.4439,159.88878,0.9
|
|
5.5550,161.11100,0.0
|
|
5.6661,162.33322,0.1
|
|
5.7772,163.55544,0.2
|
|
5.8883,164.77766,0.3
|
|
5.9994,165.99988,0.4
|
|
6.1105,167.22210,0.5
|
|
6.2216,168.44432,0.6
|
|
6.3327,169.66654,0.7
|
|
6.4438,170.88876,0.8
|
|
6.5549,172.11098,0.9
|
|
6.6660,173.33320,0.0
|
|
6.7771,174.55542,0.1
|
|
6.8882,175.77764,0.2
|
|
6.9993,176.99986,0.3
|
|
7.1104,178.22208,0.4
|
|
7.2215,179.44430,0.5
|
|
7.3326,180.66652,0.6
|
|
7.4437,181.88874,0.7
|
|
7.5548,183.11096,0.8
|
|
7.6659,184.33318,0.9
|
|
7.7770,185.55540,0.0
|
|
7.8881,186.77762,0.1
|
|
7.9992,187.99984,0.2
|
|
8.1103,189.22206,0.3
|
|
8.2214,190.44428,0.4
|
|
8.3325,191.66650,0.5
|
|
8.4436,192.88872,0.6
|
|
8.5547,194.11094,0.7
|
|
8.6658,195.33316,0.8
|
|
8.7769,196.55538,0.9
|
|
8.8880,197.77760,0.0
|
|
8.9991,198.99982,0.1
|
|
9.1102,200.22204,0.2
|
|
9.2213,201.44426,0.3
|
|
9.3324,202.66648,0.4
|
|
9.4435,203.88870,0.5
|
|
9.5546,205.11092,0.6
|
|
9.6657,206.33314,0.7
|
|
9.7768,207.55536,0.8
|
|
9.8879,208.77758,0.9
|
|
9.9990,209.99980,0.0
|
|
10.1101,211.22202,0.1
|
|
10.2212,212.44424,0.2
|
|
10.3323,213.66646,0.3
|
|
10.4434,214.88868,0.4
|
|
10.5545,216.11090,0.5
|
|
10.6656,217.33312,0.6
|
|
10.7767,218.55534,0.7
|
|
10.8878,219.77756,0.8
|
|
10.9989,220.99978,0.9
|
|
---- TYPES
|
|
DECIMAL, DECIMAL, DECIMAL
|
|
====
|
|
---- QUERY
|
|
# Test group-by with decimal
|
|
select d1, d2, sum(d3), sum(d4), sum(d5), sum(d6) from decimal_tbl group by d1,d2;
|
|
---- RESULTS
|
|
132842,333,12345.6789000000,0.12345678900000000000000000000000000000,0.77889,1
|
|
12345,333,1358.0246790000,0.24691357800000000000000000000000000000,11.32000,2
|
|
1234,2222,1.2345678900,0.12345678900000000000000000000000000000,12345.78900,1
|
|
2345,111,12.3456789000,0.12345678900000000000000000000000000000,3.14100,1
|
|
---- TYPES
|
|
decimal,decimal,decimal,decimal,decimal,decimal
|
|
====
|
|
---- QUERY
|
|
# IMPALA-1559: FIRST_VALUE rewrite function intermediate type not matching slot type
|
|
select
|
|
first_value(c3) over (order by c1 rows between 92 preceding and current row),
|
|
first_value(c2) over (order by c1 rows between 92 preceding and 1 preceding)
|
|
from decimal_tiny where c3 = 0.0
|
|
---- RESULTS: VERIFY_IS_EQUAL_SORTED
|
|
0.0,NULL
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
0.0,100.00000
|
|
---- TYPES
|
|
DECIMAL, DECIMAL
|
|
====
|
|
---- QUERY
|
|
select histogram(d1) from decimal_tbl;
|
|
---- RESULTS
|
|
'1234, 2345, 12345, 12345, 132842'
|
|
---- TYPES
|
|
STRING
|
|
====
|
|
---- QUERY
|
|
select appx_median(c1), appx_median(c2), appx_median(c3) from decimal_tiny
|
|
---- RESULTS
|
|
5.5550,161.11100,0.5
|
|
---- TYPES
|
|
DECIMAL, DECIMAL, DECIMAL
|
|
====
|
|
---- QUERY
|
|
select sample(d1) from decimal_tbl;
|
|
---- TYPES
|
|
# Results are unstable, just check that this doesn't crash
|
|
STRING
|
|
====
|
|
---- QUERY
|
|
# IMPALA-2259 - wrong overload chosen for analytic function.
|
|
select lag(c1, 1) over (order by c1), c1
|
|
from decimal_tiny
|
|
order by c1
|
|
limit 10
|
|
---- RESULTS
|
|
NULL,0.0000
|
|
0.0000,0.1111
|
|
0.1111,0.2222
|
|
0.2222,0.3333
|
|
0.3333,0.4444
|
|
0.4444,0.5555
|
|
0.5555,0.6666
|
|
0.6666,0.7777
|
|
0.7777,0.8888
|
|
0.8888,0.9999
|
|
---- TYPES
|
|
DECIMAL, DECIMAL
|
|
====
|
|
---- QUERY
|
|
# Query return mixed NULL and non-NULL decimal values.
|
|
select case when rn % 2 = 0 then c1 end,
|
|
case when rn % 3 = 0 then c2 end,
|
|
case when rn % 4 = 0 then c3 end
|
|
from (
|
|
select *, row_number() over (order by c1) rn
|
|
from decimal_tiny) v
|
|
where rn <= 20
|
|
---- RESULTS
|
|
NULL,NULL,NULL
|
|
0.1111,NULL,NULL
|
|
NULL,102.44444,NULL
|
|
0.3333,NULL,0.3
|
|
NULL,NULL,NULL
|
|
0.5555,106.11110,NULL
|
|
NULL,NULL,NULL
|
|
0.7777,NULL,0.7
|
|
NULL,109.77776,NULL
|
|
0.9999,NULL,NULL
|
|
NULL,NULL,NULL
|
|
1.2221,113.44442,0.1
|
|
NULL,NULL,NULL
|
|
1.4443,NULL,NULL
|
|
NULL,117.11108,NULL
|
|
1.6665,NULL,0.5
|
|
NULL,NULL,NULL
|
|
1.8887,120.77774,NULL
|
|
NULL,NULL,NULL
|
|
2.1109,NULL,0.9
|
|
---- TYPES
|
|
DECIMAL, DECIMAL, DECIMAL
|
|
====
|