blob: a258025dc10a43238ff769b1cd82d33b981ec1e7 [file] [log] [blame]
--! qt:dataset:src
SET hive.vectorized.execution.enabled=true;
set hive.fetch.task.conversion=none;
drop table varchar_udf_1_n2;
create table varchar_udf_1_n2 (c1 string, c2 string, c3 varchar(10), c4 varchar(20),
d1 string, d2 string, d3 varchar(10), d4 varchar(10)) STORED AS ORC;
insert overwrite table varchar_udf_1_n2
select key, value, key, value, '2015-01-14', '2015-01-14', '2017-01-11', '2017-01-11' from src where key = '238' limit 1;
-- UDFs with varchar support
explain vectorization detail
select
concat(c1, c2),
concat(c3, c4),
concat(c1, c2) = concat(c3, c4)
from varchar_udf_1_n2 limit 1;
select
concat(c1, c2),
concat(c3, c4),
concat(c1, c2) = concat(c3, c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
upper(c2),
upper(c4),
upper(c2) = upper(c4)
from varchar_udf_1_n2 limit 1;
select
upper(c2),
upper(c4),
upper(c2) = upper(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
lower(c2),
lower(c4),
lower(c2) = lower(c4)
from varchar_udf_1_n2 limit 1;
select
lower(c2),
lower(c4),
lower(c2) = lower(c4)
from varchar_udf_1_n2 limit 1;
-- Scalar UDFs
explain vectorization detail
select
ascii(c2),
ascii(c4),
ascii(c2) = ascii(c4)
from varchar_udf_1_n2 limit 1;
select
ascii(c2),
ascii(c4),
ascii(c2) = ascii(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
concat_ws('|', c1, c2),
concat_ws('|', c3, c4),
concat_ws('|', c1, c2) = concat_ws('|', c3, c4)
from varchar_udf_1_n2 limit 1;
select
concat_ws('|', c1, c2),
concat_ws('|', c3, c4),
concat_ws('|', c1, c2) = concat_ws('|', c3, c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
decode(encode(c2, 'US-ASCII'), 'US-ASCII'),
decode(encode(c4, 'US-ASCII'), 'US-ASCII'),
decode(encode(c2, 'US-ASCII'), 'US-ASCII') = decode(encode(c4, 'US-ASCII'), 'US-ASCII')
from varchar_udf_1_n2 limit 1;
select
decode(encode(c2, 'US-ASCII'), 'US-ASCII'),
decode(encode(c4, 'US-ASCII'), 'US-ASCII'),
decode(encode(c2, 'US-ASCII'), 'US-ASCII') = decode(encode(c4, 'US-ASCII'), 'US-ASCII')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
instr(c2, '_'),
instr(c4, '_'),
instr(c2, '_') = instr(c4, '_')
from varchar_udf_1_n2 limit 1;
select
instr(c2, '_'),
instr(c4, '_'),
instr(c2, '_') = instr(c4, '_')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
replace(c1, '_', c2),
replace(c3, '_', c4),
replace(c1, '_', c2) = replace(c3, '_', c4)
from varchar_udf_1_n2 limit 1;
select
replace(c1, '_', c2),
replace(c3, '_', c4),
replace(c1, '_', c2) = replace(c3, '_', c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
reverse(c2),
reverse(c4),
reverse(c2) = reverse(c4)
from varchar_udf_1_n2 limit 1;
select
reverse(c2),
reverse(c4),
reverse(c2) = reverse(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
next_day(d1, 'TU'),
next_day(d4, 'WE'),
next_day(d1, 'TU') = next_day(d4, 'WE')
from varchar_udf_1_n2 limit 1;
select
next_day(d1, 'TU'),
next_day(d4, 'WE'),
next_day(d1, 'TU') = next_day(d4, 'WE')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
months_between(d1, d3),
months_between(d2, d4),
months_between(d1, d3) = months_between(d2, d4)
from varchar_udf_1_n2 limit 1;
select
months_between(d1, d3),
months_between(d2, d4),
months_between(d1, d3) = months_between(d2, d4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
length(c2),
length(c4),
length(c2) = length(c4)
from varchar_udf_1_n2 limit 1;
select
length(c2),
length(c4),
length(c2) = length(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
locate('a', 'abcdabcd', 3),
locate(cast('a' as varchar(1)), cast('abcdabcd' as varchar(10)), 3),
locate('a', 'abcdabcd', 3) = locate(cast('a' as varchar(1)), cast('abcdabcd' as varchar(10)), 3)
from varchar_udf_1_n2 limit 1;
select
locate('a', 'abcdabcd', 3),
locate(cast('a' as varchar(1)), cast('abcdabcd' as varchar(10)), 3),
locate('a', 'abcdabcd', 3) = locate(cast('a' as varchar(1)), cast('abcdabcd' as varchar(10)), 3)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
lpad(c2, 15, ' '),
lpad(c4, 15, ' '),
lpad(c2, 15, ' ') = lpad(c4, 15, ' ')
from varchar_udf_1_n2 limit 1;
select
lpad(c2, 15, ' '),
lpad(c4, 15, ' '),
lpad(c2, 15, ' ') = lpad(c4, 15, ' ')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
ltrim(c2),
ltrim(c4),
ltrim(c2) = ltrim(c4)
from varchar_udf_1_n2 limit 1;
select
ltrim(c2),
ltrim(c4),
ltrim(c2) = ltrim(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
c2 regexp 'val',
c4 regexp 'val',
(c2 regexp 'val') = (c4 regexp 'val')
from varchar_udf_1_n2 limit 1;
select
c2 regexp 'val',
c4 regexp 'val',
(c2 regexp 'val') = (c4 regexp 'val')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
regexp_extract(c2, 'val_([0-9]+)', 1),
regexp_extract(c4, 'val_([0-9]+)', 1),
regexp_extract(c2, 'val_([0-9]+)', 1) = regexp_extract(c4, 'val_([0-9]+)', 1)
from varchar_udf_1_n2 limit 1;
select
regexp_extract(c2, 'val_([0-9]+)', 1),
regexp_extract(c4, 'val_([0-9]+)', 1),
regexp_extract(c2, 'val_([0-9]+)', 1) = regexp_extract(c4, 'val_([0-9]+)', 1)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
regexp_replace(c2, 'val', 'replaced'),
regexp_replace(c4, 'val', 'replaced'),
regexp_replace(c2, 'val', 'replaced') = regexp_replace(c4, 'val', 'replaced')
from varchar_udf_1_n2 limit 1;
select
regexp_replace(c2, 'val', 'replaced'),
regexp_replace(c4, 'val', 'replaced'),
regexp_replace(c2, 'val', 'replaced') = regexp_replace(c4, 'val', 'replaced')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
reverse(c2),
reverse(c4),
reverse(c2) = reverse(c4)
from varchar_udf_1_n2 limit 1;
select
reverse(c2),
reverse(c4),
reverse(c2) = reverse(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
rpad(c2, 15, ' '),
rpad(c4, 15, ' '),
rpad(c2, 15, ' ') = rpad(c4, 15, ' ')
from varchar_udf_1_n2 limit 1;
select
rpad(c2, 15, ' '),
rpad(c4, 15, ' '),
rpad(c2, 15, ' ') = rpad(c4, 15, ' ')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
rtrim(c2),
rtrim(c4),
rtrim(c2) = rtrim(c4)
from varchar_udf_1_n2 limit 1;
select
rtrim(c2),
rtrim(c4),
rtrim(c2) = rtrim(c4)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
sentences('See spot run. See jane run.'),
sentences(cast('See spot run. See jane run.' as varchar(50)))
from varchar_udf_1_n2 limit 1;
select
sentences('See spot run. See jane run.'),
sentences(cast('See spot run. See jane run.' as varchar(50)))
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
split(c2, '_'),
split(c4, '_')
from varchar_udf_1_n2 limit 1;
select
split(c2, '_'),
split(c4, '_')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
str_to_map('a:1,b:2,c:3',',',':'),
str_to_map(cast('a:1,b:2,c:3' as varchar(20)),',',':')
from varchar_udf_1_n2 limit 1;
select
str_to_map('a:1,b:2,c:3',',',':'),
str_to_map(cast('a:1,b:2,c:3' as varchar(20)),',',':')
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
substr(c2, 1, 3),
substr(c4, 1, 3),
substr(c2, 1, 3) = substr(c4, 1, 3)
from varchar_udf_1_n2 limit 1;
select
substr(c2, 1, 3),
substr(c4, 1, 3),
substr(c2, 1, 3) = substr(c4, 1, 3)
from varchar_udf_1_n2 limit 1;
explain vectorization detail
select
trim(c2),
trim(c4),
trim(c2) = trim(c4)
from varchar_udf_1_n2 limit 1;
select
trim(c2),
trim(c4),
trim(c2) = trim(c4)
from varchar_udf_1_n2 limit 1;
-- Aggregate Functions
explain vectorization detail
select
compute_stats(c2, 16),
compute_stats(c4, 16)
from varchar_udf_1_n2;
select
compute_stats(c2, 'fm', 16),
compute_stats(c4, 'fm', 16)
from varchar_udf_1_n2;
explain vectorization detail
select
min(c2),
min(c4)
from varchar_udf_1_n2;
select
min(c2),
min(c4)
from varchar_udf_1_n2;
explain vectorization detail
select
max(c2),
max(c4)
from varchar_udf_1_n2;
select
max(c2),
max(c4)
from varchar_udf_1_n2;
drop table varchar_udf_1_n2;