blob: f32c8a1035ccd168637b78c268bdcb0f620711ae [file] [log] [blame]
====
---- QUERY
# Make sure LIMIT is enforced.
select * from functional_kudu.dimtbl order by id limit 1;
---- RESULTS
1001,'Name1',94611
---- TYPES
BIGINT, STRING, INT
====
---- QUERY
# Make sure that we can list the columns to be scanned in any order, that predicates
# work and that we can have predicates on columns not referenced elsewhere.
select zip, id from functional_kudu.dimtbl where id >= 1000 and 1002 >= id and
94611 = zip and 'Name1' = name order by id;
---- RESULTS
94611,1001
---- TYPES
INT, BIGINT
====
---- QUERY
# Regression test for IMPALA-2740, a NULL value from a previously filtered row would
# carry over into the next unfiltered row (the result below would incorrectly be 2,NULL).
CREATE TABLE impala_2740 (key INT PRIMARY KEY, value INT)
PARTITION BY HASH (key) PARTITIONS 3 STORED AS KUDU;
INSERT INTO impala_2740 VALUES (1, NULL), (2, -2);
SELECT * FROM impala_2740 WHERE key != 1;
---- RESULTS
2,-2
---- TYPES
INT, INT
====
---- QUERY
# Regression test for IMPALA-2635, the Kudu scanner hangs waiting for data from scanner
# threads that are never started. The union and both scans land in the same fragment which
# is run on all impalads. However, for the t1 table there is only as single scan range,
# so two of the scan instances get empty scan ranges.
CREATE TABLE impala_2635_t1 (id BIGINT PRIMARY KEY, name STRING)
PARTITION BY HASH (id) PARTITIONS 3 STORED AS KUDU;
CREATE TABLE impala_2635_t2 (id BIGINT PRIMARY KEY, name STRING)
PARTITION BY HASH(id) PARTITIONS 16 STORED AS KUDU;
INSERT INTO impala_2635_t1 VALUES (0, 'Foo');
INSERT INTO impala_2635_t2 VALUES (1, 'Blah');
SELECT * FROM impala_2635_t1 UNION ALL SELECT * FROM impala_2635_t2;
---- RESULTS
0,'Foo'
1,'Blah'
---- TYPES
BIGINT, STRING
====
---- QUERY
# IMPALA-4408: Test Kudu scans where all materialized slots are non-nullable.
select count(int_col) from functional_kudu.tinyinttable
---- RESULTS
10
---- TYPES
BIGINT
====
---- QUERY
# IMPALA-4859: Test Kudu IS NULL/IS NOT NULL pushdown
select count(*) from functional_kudu.alltypesagg where id < 10 and float_col is null;
---- RESULTS
2
---- TYPES
BIGINT
====
---- QUERY
select count(*) from functional_kudu.alltypesagg where id < 10 and float_col is not null;
---- RESULTS
9
---- TYPES
BIGINT
====
---- QUERY
# alltypes.id is primary key/not nullable, verify IS NOT NULL/IS NULL pushdown works
select count(*) from functional_kudu.alltypes where id is not null;
---- RESULTS
7300
---- TYPES
BIGINT
====
---- QUERY
select count(*) from functional_kudu.alltypes where id is null;
---- RESULTS
0
---- TYPES
BIGINT
====
---- QUERY
# Push down TIMESTAMP binary predicates
select id, timestamp_col from functional_kudu.alltypes where
timestamp_col <= cast('2009-01-01 00:08:00.28' as timestamp) and
timestamp_col >= cast('2009-01-01 00:04:00.6' as timestamp)
order by id;
---- RESULTS
4,2009-01-01 00:04:00.600000000
5,2009-01-01 00:05:00.100000000
6,2009-01-01 00:06:00.150000000
7,2009-01-01 00:07:00.210000000
8,2009-01-01 00:08:00.280000000
---- TYPES
INT, TIMESTAMP
====
---- QUERY
# Out-of-range TIMESTAMP predicate (evaluates to NULL)
select id, timestamp_col from functional_kudu.alltypes where
timestamp_col > cast('1000-01-01 00:00:00.00' as timestamp)
---- RESULTS
---- TYPES
INT, TIMESTAMP
====
---- QUERY
select id, timestamp_col from functional_kudu.alltypes where
timestamp_col < cast('2009-01-01 00:08:00.28' as timestamp) and
timestamp_col > cast('2009-01-01 00:04:00.6' as timestamp)
order by id;
---- RESULTS
5,2009-01-01 00:05:00.100000000
6,2009-01-01 00:06:00.150000000
7,2009-01-01 00:07:00.210000000
---- TYPES
INT, TIMESTAMP
====
---- QUERY
select id, timestamp_col from functional_kudu.alltypes where
timestamp_col = cast('2009-01-01 00:08:00.28' as timestamp);
---- RESULTS
8,2009-01-01 00:08:00.280000000
---- TYPES
INT, TIMESTAMP
====
---- QUERY
# Push down TIMESTAMP IN list predicates
select id, timestamp_col from functional_kudu.alltypes where
timestamp_col in (cast('2010-03-01 00:00:00' as timestamp),
cast('2010-03-01 00:01:00' as timestamp))
order by id;
---- RESULTS
4240,2010-03-01 00:00:00
4241,2010-03-01 00:01:00
---- TYPES
INT, TIMESTAMP
====
---- QUERY
# Regression test for IMPALA-6187. Make sure count(*) queries with partition columns only
# won't miss conjuncts evaluation. 'id' is the partition column here.
select count(*) from functional_kudu.alltypes where rand() + id < 0.0;
---- RESULTS
0
---- TYPES
BIGINT
====