blob: f26319cb5bf0eb7c78141052dbec91f621d9882b [file] [log] [blame]
--! qt:dataset:src
set hive.mapred.mode=nonstrict;
set hive.explain.user=false;
set hive.vectorized.execution.enabled=true;
set hive.fetch.task.conversion=none;
set hive.cli.print.header=true;
drop table if exists vector_date_1;
create table vector_date_1 (dt1 date, dt2 date) stored as orc;
insert into table vector_date_1
select null, null from src limit 1;
insert into table vector_date_1
select date '1999-12-31', date '2000-01-01' from src limit 1;
insert into table vector_date_1
select date '2001-01-01', date '2001-06-01' from src limit 1;
select * from vector_date_1 order by dt1, dt2;
-- column-to-column comparison in select clause
explain vectorization detail
select
dt1, dt2,
-- should be all true
dt1 = dt1,
dt1 != dt2,
dt1 <= dt1,
dt1 <= dt2,
dt1 < dt2,
dt2 >= dt2,
dt2 >= dt1,
dt2 > dt1
from vector_date_1 order by dt1;
select
dt1, dt2,
-- should be all true
dt1 = dt1,
dt1 != dt2,
dt1 <= dt1,
dt1 <= dt2,
dt1 < dt2,
dt2 >= dt2,
dt2 >= dt1,
dt2 > dt1
from vector_date_1 order by dt1;
explain vectorization detail
select
dt1, dt2,
-- should be all false
dt1 != dt1,
dt1 = dt2,
dt1 < dt1,
dt1 >= dt2,
dt1 > dt2,
dt2 > dt2,
dt2 <= dt1,
dt2 < dt1
from vector_date_1 order by dt1;
select
dt1, dt2,
-- should be all false
dt1 != dt1,
dt1 = dt2,
dt1 < dt1,
dt1 >= dt2,
dt1 > dt2,
dt2 > dt2,
dt2 <= dt1,
dt2 < dt1
from vector_date_1 order by dt1;
-- column-to-literal/literal-to-column comparison in select clause
explain vectorization detail
select
dt1,
-- should be all true
dt1 != date '1970-01-01',
dt1 >= date '1970-01-01',
dt1 > date '1970-01-01',
dt1 <= date '2100-01-01',
dt1 < date '2100-01-01',
date '1970-01-01' != dt1,
date '1970-01-01' <= dt1,
date '1970-01-01' < dt1
from vector_date_1 order by dt1;
select
dt1,
-- should be all true
dt1 != date '1970-01-01',
dt1 >= date '1970-01-01',
dt1 > date '1970-01-01',
dt1 <= date '2100-01-01',
dt1 < date '2100-01-01',
date '1970-01-01' != dt1,
date '1970-01-01' <= dt1,
date '1970-01-01' < dt1
from vector_date_1 order by dt1;
explain vectorization detail
select
dt1,
-- should all be false
dt1 = date '1970-01-01',
dt1 <= date '1970-01-01',
dt1 < date '1970-01-01',
dt1 >= date '2100-01-01',
dt1 > date '2100-01-01',
date '1970-01-01' = dt1,
date '1970-01-01' >= dt1,
date '1970-01-01' > dt1
from vector_date_1 order by dt1;
select
dt1,
-- should all be false
dt1 = date '1970-01-01',
dt1 <= date '1970-01-01',
dt1 < date '1970-01-01',
dt1 >= date '2100-01-01',
dt1 > date '2100-01-01',
date '1970-01-01' = dt1,
date '1970-01-01' >= dt1,
date '1970-01-01' > dt1
from vector_date_1 order by dt1;
-- column-to-column comparisons in predicate
-- all rows with non-null dt1 should be returned
explain vectorization detail
select
dt1, dt2
from vector_date_1
where
dt1 = dt1
and dt1 != dt2
and dt1 < dt2
and dt1 <= dt2
and dt2 > dt1
and dt2 >= dt1
order by dt1;
select
dt1, dt2
from vector_date_1
where
dt1 = dt1
and dt1 != dt2
and dt1 < dt2
and dt1 <= dt2
and dt2 > dt1
and dt2 >= dt1
order by dt1;
-- column-to-literal/literal-to-column comparison in predicate
-- only a single row should be returned
explain vectorization detail
select
dt1, dt2
from vector_date_1
where
dt1 = date '2001-01-01'
and date '2001-01-01' = dt1
and dt1 != date '1970-01-01'
and date '1970-01-01' != dt1
and dt1 > date '1970-01-01'
and dt1 >= date '1970-01-01'
and date '1970-01-01' < dt1
and date '1970-01-01' <= dt1
order by dt1;
select
dt1, dt2
from vector_date_1
where
dt1 = date '2001-01-01'
and date '2001-01-01' = dt1
and dt1 != date '1970-01-01'
and date '1970-01-01' != dt1
and dt1 > date '1970-01-01'
and dt1 >= date '1970-01-01'
and date '1970-01-01' < dt1
and date '1970-01-01' <= dt1
order by dt1;
EXPLAIN VECTORIZATION DETAIL
SELECT dt1 FROM vector_date_1 WHERE dt1 IN (date '1970-01-01', date '2001-01-01');
SELECT dt1 FROM vector_date_1 WHERE dt1 IN (date '1970-01-01', date '2001-01-01');
drop table vector_date_1;