[ https://issues.apache.org/jira/browse/HIVE-24873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
László Bodor updated HIVE-24873: -------------------------------- Description: {code} EXPLAIN VECTORIZATION DETAIL WITH web_v1 as ( select ws_item_sk item_sk, d_date, sum(sum(ws_sales_price)) over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales from web_sales ,date_dim where ws_sold_date_sk=d_date_sk and d_month_seq between 1214 and 1214+11 and ws_item_sk is not NULL group by ws_item_sk, d_date), store_v1 as ( select ss_item_sk item_sk, d_date, sum(sum(ss_sales_price)) over (partition by ss_item_sk order by d_date rows between unbounded preceding and current row) cume_sales from store_sales ,date_dim where ss_sold_date_sk=d_date_sk and d_month_seq between 1214 and 1214+11 and ss_item_sk is not NULL group by ss_item_sk, d_date) select * from (select item_sk ,d_date ,web_sales ,store_sales ,max(web_sales) over (partition by item_sk order by d_date rows between unbounded preceding and current row) web_cumulative ,max(store_sales) over (partition by item_sk order by d_date rows between unbounded preceding and current row) store_cumulative from (select case when web.item_sk is not null then web.item_sk else store.item_sk end item_sk ,case when web.d_date is not null then web.d_date else store.d_date end d_date ,web.cume_sales web_sales ,store.cume_sales store_sales from web_v1 web full outer join store_v1 store on (web.item_sk = store.item_sk and web.d_date = store.d_date) )x )y where web_cumulative > store_cumulative order by item_sk ,d_date limit 100; {code} {code} Reducer 2 notVectorizedReason: PTF operator: Only PTF directly under reduce-shuffle is supported window functions: window function: GenericUDAFSumHiveDecimal window frame: ROWS PRECEDING(MAX)~CURRENT ... Reducer 8 notVectorizedReason: PTF operator: Only PTF directly under reduce-shuffle is supported window functions: window function: GenericUDAFSumHiveDecimal window frame: ROWS PRECEDING(MAX)~CURRENT | {code} The interesting part is: {code} explain vectorization detail select ws_item_sk item_sk, d_date, sum(sum(ws_sales_price)) over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales from web_sales ,date_dim where ws_sold_date_sk=d_date_sk and d_month_seq between 1214 and 1214+11 and ws_item_sk is not NULL group by ws_item_sk, d_date; {code} the same applies to query63: {code} ... ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales ... {code} was: {code} EXPLAIN VECTORIZATION DETAIL WITH web_v1 as ( select ws_item_sk item_sk, d_date, sum(sum(ws_sales_price)) over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales from web_sales ,date_dim where ws_sold_date_sk=d_date_sk and d_month_seq between 1214 and 1214+11 and ws_item_sk is not NULL group by ws_item_sk, d_date), store_v1 as ( select ss_item_sk item_sk, d_date, sum(sum(ss_sales_price)) over (partition by ss_item_sk order by d_date rows between unbounded preceding and current row) cume_sales from store_sales ,date_dim where ss_sold_date_sk=d_date_sk and d_month_seq between 1214 and 1214+11 and ss_item_sk is not NULL group by ss_item_sk, d_date) select * from (select item_sk ,d_date ,web_sales ,store_sales ,max(web_sales) over (partition by item_sk order by d_date rows between unbounded preceding and current row) web_cumulative ,max(store_sales) over (partition by item_sk order by d_date rows between unbounded preceding and current row) store_cumulative from (select case when web.item_sk is not null then web.item_sk else store.item_sk end item_sk ,case when web.d_date is not null then web.d_date else store.d_date end d_date ,web.cume_sales web_sales ,store.cume_sales store_sales from web_v1 web full outer join store_v1 store on (web.item_sk = store.item_sk and web.d_date = store.d_date) )x )y where web_cumulative > store_cumulative order by item_sk ,d_date limit 100; {code} {code} Reducer 2 notVectorizedReason: PTF operator: Only PTF directly under reduce-shuffle is supported window functions: window function: GenericUDAFSumHiveDecimal window frame: ROWS PRECEDING(MAX)~CURRENT ... Reducer 8 notVectorizedReason: PTF operator: Only PTF directly under reduce-shuffle is supported window functions: window function: GenericUDAFSumHiveDecimal window frame: ROWS PRECEDING(MAX)~CURRENT | {code} The interesting part is: {code} explain vectorization detail select ws_item_sk item_sk, d_date, sum(sum(ws_sales_price)) over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales from web_sales ,date_dim where ws_sold_date_sk=d_date_sk and d_month_seq between 1214 and 1214+11 and ws_item_sk is not NULL group by ws_item_sk, d_date; {code} > TPCDS query51 doesn't vectorize: Only PTF directly under reduce-shuffle is > supported > -------------------------------------------------------------------------------------- > > Key: HIVE-24873 > URL: https://issues.apache.org/jira/browse/HIVE-24873 > Project: Hive > Issue Type: Sub-task > Reporter: László Bodor > Priority: Major > > {code} > EXPLAIN VECTORIZATION DETAIL WITH web_v1 as ( > select > ws_item_sk item_sk, d_date, > sum(sum(ws_sales_price)) > over (partition by ws_item_sk order by d_date rows between unbounded > preceding and current row) cume_sales > from web_sales > ,date_dim > where ws_sold_date_sk=d_date_sk > and d_month_seq between 1214 and 1214+11 > and ws_item_sk is not NULL > group by ws_item_sk, d_date), > store_v1 as ( > select > ss_item_sk item_sk, d_date, > sum(sum(ss_sales_price)) > over (partition by ss_item_sk order by d_date rows between unbounded > preceding and current row) cume_sales > from store_sales > ,date_dim > where ss_sold_date_sk=d_date_sk > and d_month_seq between 1214 and 1214+11 > and ss_item_sk is not NULL > group by ss_item_sk, d_date) > select * > from (select item_sk > ,d_date > ,web_sales > ,store_sales > ,max(web_sales) > over (partition by item_sk order by d_date rows between unbounded > preceding and current row) web_cumulative > ,max(store_sales) > over (partition by item_sk order by d_date rows between unbounded > preceding and current row) store_cumulative > from (select case when web.item_sk is not null then web.item_sk else > store.item_sk end item_sk > ,case when web.d_date is not null then web.d_date else > store.d_date end d_date > ,web.cume_sales web_sales > ,store.cume_sales store_sales > from web_v1 web full outer join store_v1 store on (web.item_sk = > store.item_sk > and web.d_date = > store.d_date) > )x )y > where web_cumulative > store_cumulative > order by item_sk > ,d_date > limit 100; > {code} > {code} > Reducer 2 > notVectorizedReason: PTF operator: Only PTF directly under reduce-shuffle is > supported > window functions: > window function: GenericUDAFSumHiveDecimal > window frame: ROWS PRECEDING(MAX)~CURRENT > ... > Reducer 8 > notVectorizedReason: PTF operator: Only PTF directly under reduce-shuffle is > supported > window functions: > window function: GenericUDAFSumHiveDecimal > window frame: ROWS PRECEDING(MAX)~CURRENT | > {code} > The interesting part is: > {code} > explain vectorization detail select > ws_item_sk item_sk, d_date, > sum(sum(ws_sales_price)) > over (partition by ws_item_sk order by d_date rows between unbounded > preceding and current row) cume_sales > from web_sales > ,date_dim > where ws_sold_date_sk=d_date_sk > and d_month_seq between 1214 and 1214+11 > and ws_item_sk is not NULL > group by ws_item_sk, d_date; > {code} > the same applies to query63: > {code} > ... > ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales > ... > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)