blob: 1c5c1f3a3545895b23660a6e0d8bec06bc5e951f [file] [log] [blame]
set hive.vectorized.execution.enabled=false;
set hive.mapred.mode=nonstrict;
SET hive.optimize.ppd=true;
set hive.llap.cache.allow.synthetic.fileid=true;
-- SORT_QUERY_RESULTS
CREATE TABLE tbl_pred(t tinyint,
si smallint,
i int,
b bigint,
f float,
d double,
bo boolean,
s string,
ts timestamp,
`dec` decimal(4,2),
bin binary)
STORED AS PARQUET;
CREATE TABLE staging_n0(t tinyint,
si smallint,
i int,
b bigint,
f float,
d double,
bo boolean,
s string,
ts timestamp,
`dec` decimal(4,2),
bin binary)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE;
LOAD DATA LOCAL INPATH '../../data/files/over1k' OVERWRITE INTO TABLE staging_n0;
INSERT INTO TABLE tbl_pred select * from staging_n0;
-- no predicate case. the explain plan should not have filter expression in table scan operator
SELECT SUM(HASH(t)) FROM tbl_pred;
SET hive.optimize.index.filter=true;
SELECT SUM(HASH(t)) FROM tbl_pred;
SET hive.optimize.index.filter=false;
EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred;
SET hive.optimize.index.filter=false;
-- all the following queries have predicates which are pushed down to table scan operator if
-- hive.optimize.index.filter is set to true. the explain plan should show filter expression
-- in table scan operator.
SELECT * FROM tbl_pred WHERE t<2 limit 1;
SET hive.optimize.index.filter=true;
SELECT * FROM tbl_pred WHERE t<2 limit 1;
SET hive.optimize.index.filter=false;
SELECT * FROM tbl_pred WHERE t>2 limit 1;
SET hive.optimize.index.filter=true;
SELECT * FROM tbl_pred WHERE t>2 limit 1;
SET hive.optimize.index.filter=false;
SELECT * FROM tbl_pred
WHERE t IS NOT NULL
AND t < 0
AND t > -2
LIMIT 10;
SET hive.optimize.index.filter=true;
SELECT * FROM tbl_pred
WHERE t IS NOT NULL
AND t < 0
AND t > -2
LIMIT 10;
SET hive.optimize.index.filter=false;
EXPLAIN SELECT * FROM tbl_pred
WHERE t IS NOT NULL
AND t < 0
AND t > -2
LIMIT 10;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT * FROM tbl_pred
WHERE t IS NOT NULL
AND t < 0
AND t > -2
LIMIT 10;
SET hive.optimize.index.filter=false;
SELECT t, s FROM tbl_pred
WHERE t <=> -1
AND s IS NOT NULL
AND s LIKE 'bob%'
;
SET hive.optimize.index.filter=true;
SELECT t, s FROM tbl_pred
WHERE t <=> -1
AND s IS NOT NULL
AND s LIKE 'bob%'
;
SET hive.optimize.index.filter=false;
EXPLAIN SELECT t, s FROM tbl_pred
WHERE t <=> -1
AND s IS NOT NULL
AND s LIKE 'bob%'
;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT t, s FROM tbl_pred
WHERE t <=> -1
AND s IS NOT NULL
AND s LIKE 'bob%'
;
SET hive.optimize.index.filter=false;
SELECT t, s FROM tbl_pred
WHERE s IS NOT NULL
AND s LIKE 'bob%'
AND t NOT IN (-1,-2,-3)
AND t BETWEEN 25 AND 30
SORT BY t,s;
set hive.optimize.index.filter=true;
SELECT t, s FROM tbl_pred
WHERE s IS NOT NULL
AND s LIKE 'bob%'
AND t NOT IN (-1,-2,-3)
AND t BETWEEN 25 AND 30
SORT BY t,s;
set hive.optimize.index.filter=false;
EXPLAIN SELECT t, s FROM tbl_pred
WHERE s IS NOT NULL
AND s LIKE 'bob%'
AND t NOT IN (-1,-2,-3)
AND t BETWEEN 25 AND 30
SORT BY t,s;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT t, s FROM tbl_pred
WHERE s IS NOT NULL
AND s LIKE 'bob%'
AND t NOT IN (-1,-2,-3)
AND t BETWEEN 25 AND 30
SORT BY t,s;
SET hive.optimize.index.filter=false;
SELECT t, si, d, s FROM tbl_pred
WHERE d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
ORDER BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=true;
SELECT t, si, d, s FROM tbl_pred
WHERE d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
ORDER BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=false;
EXPLAIN SELECT t, si, d, s FROM tbl_pred
WHERE d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
ORDER BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT t, si, d, s FROM tbl_pred
WHERE d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
ORDER BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=false;
SELECT t, si, d, s FROM tbl_pred
WHERE t > 10
AND t <> 101
AND d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
SORT BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=true;
SELECT t, si, d, s FROM tbl_pred
WHERE t > 10
AND t <> 101
AND d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
SORT BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=false;
SET hive.optimize.index.filter=true;
SELECT f, i, b FROM tbl_pred
WHERE f IS NOT NULL
AND f < 123.2
AND f > 1.92
AND f >= 9.99
AND f BETWEEN 1.92 AND 123.2
AND i IS NOT NULL
AND i < 67627
AND i > 60627
AND i >= 60626
AND i BETWEEN 60626 AND 67627
AND b IS NOT NULL
AND b < 4294967861
AND b > 4294967261
AND b >= 4294967260
AND b BETWEEN 4294967261 AND 4294967861
SORT BY f DESC
LIMIT 3;
SET hive.optimize.index.filter=false;
EXPLAIN SELECT t, si, d, s FROM tbl_pred
WHERE t > 10
AND t <> 101
AND d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
SORT BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT t, si, d, s FROM tbl_pred
WHERE t > 10
AND t <> 101
AND d >= ROUND(9.99)
AND d < 12
AND t IS NOT NULL
AND s LIKE '%son'
AND s NOT LIKE '%car%'
AND t > 0
AND si BETWEEN 300 AND 400
SORT BY s DESC
LIMIT 3;
SET hive.optimize.index.filter=false;
SET hive.optimize.index.filter=true;
EXPLAIN SELECT f, i, b FROM tbl_pred
WHERE f IS NOT NULL
AND f < 123.2
AND f > 1.92
AND f >= 9.99
AND f BETWEEN 1.92 AND 123.2
AND i IS NOT NULL
AND i < 67627
AND i > 60627
AND i >= 60626
AND i BETWEEN 60626 AND 67627
AND b IS NOT NULL
AND b < 4294967861
AND b > 4294967261
AND b >= 4294967260
AND b BETWEEN 4294967261 AND 4294967861
SORT BY f DESC
LIMIT 3;
SET hive.optimize.index.filter=false;