blob: 81750caed6b0853fa2d90d407b6f4468b67add1c [file] [log] [blame]
set hive.cli.print.header=true;
SET hive.vectorized.execution.enabled=true;
SET hive.vectorized.execution.reduce.enabled=true;
set hive.vectorized.execution.ptf.enabled=true;
set hive.fetch.task.conversion=none;
drop table row_number_test;
-- row_number_test schema: (pos int, col string)
create table row_number_test as select (posexplode(split(repeat("w,", 2400), ","))) as (pos, col);
insert into row_number_test select (posexplode(split(repeat("x,", 1200), ","))) as (pos, col);
insert into row_number_test select (posexplode(split(repeat("y,", 700), ","))) as (pos, col);
insert into row_number_test select (posexplode(split(repeat("z,", 600), ","))) as (pos, col);
-- get detailed plan for just vectorized casts
explain vectorization detail select
row_number() over(partition by cast (pos as string)) r8, -- cast int to string
row_number() over(order by cast (pos as string)) r9, -- cast int to string in order by
row_number() over(partition by cast (pos as string) order by cast (pos as string)) r10 -- cast both
from row_number_test;
explain select
row_number() over() as r1,
row_number() over(order by col) r2,
row_number() over(partition by col) r3,
row_number() over(partition by col order by col) r4,
row_number() over(partition by 1 order by col) r5,
row_number() over(partition by col order by 2) r6,
row_number() over(partition by 1 order by 2) r7,
row_number() over(partition by cast (pos as string)) r8, -- cast int to string
row_number() over(order by cast (pos as string)) r9, -- cast int to string in order by
row_number() over(partition by cast (pos as string) order by cast (pos as string)) r10, -- cast both
col
from row_number_test;
create table row_numbers_vectorized as select
row_number() over() as r1,
row_number() over(order by col) r2,
row_number() over(partition by col) r3,
row_number() over(partition by col order by col) r4,
row_number() over(partition by 1 order by col) r5,
row_number() over(partition by col order by 2) r6,
row_number() over(partition by 1 order by 2) r7,
row_number() over(partition by cast (pos as string)) r8, -- cast int to string
row_number() over(order by cast (pos as string)) r9, -- cast int to string in order by
row_number() over(partition by cast (pos as string) order by cast (pos as string)) r10, -- cast both
col
from row_number_test;
SET hive.vectorized.execution.enabled=false;
SET hive.vectorized.execution.reduce.enabled=false;
set hive.vectorized.execution.ptf.enabled=false;
explain select
row_number() over() as r1,
row_number() over(order by col) r2,
row_number() over(partition by col) r3,
row_number() over(partition by col order by col) r4,
row_number() over(partition by 1 order by col) r5,
row_number() over(partition by col order by 2) r6,
row_number() over(partition by 1 order by 2) r7,
row_number() over(partition by cast (pos as string)) r8, -- cast int to string in partition
row_number() over(order by cast (pos as string)) r9, -- cast int to string in order by
row_number() over(partition by cast (pos as string) order by cast (pos as string)) r10, -- cast both
col
from row_number_test;
create table row_numbers_non_vectorized as select
row_number() over() as r1,
row_number() over(order by col) r2,
row_number() over(partition by col) r3,
row_number() over(partition by col order by col) r4,
row_number() over(partition by 1 order by col) r5,
row_number() over(partition by col order by 2) r6,
row_number() over(partition by 1 order by 2) r7,
row_number() over(partition by cast (pos as string)) r8, -- cast int to string
row_number() over(order by cast (pos as string)) r9, -- cast int to string in order by
row_number() over(partition by cast (pos as string) order by cast (pos as string)) r10, -- cast both
col
from row_number_test;
-- compare results of vectorized with those of non-vectorized execution
select exists(
select r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, col from row_numbers_vectorized
minus
select r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, col from row_numbers_non_vectorized
) diff_exists;
drop table row_numbers_non_vectorized;
drop table row_numbers_vectorized;
drop table row_number_test;