kasakrisz commented on a change in pull request #1676:
URL: https://github.com/apache/hive/pull/1676#discussion_r530266544



##########
File path: 
ql/src/test/results/clientpositive/llap/materialized_view_rewrite_window.q.out
##########
@@ -166,7 +166,7 @@ POSTHOOK: Input: arc_view@wealth
 #### A masked pattern was here ####
 CBO PLAN:
 HiveSortLimit(sort0=[$0], dir0=[ASC])
-  HiveProject(quartile=[$0], total=[$1])
+  HiveProject(quartile=[CAST($0):DECIMAL(12, 1)], total=[$1])

Review comment:
       The optimiziter rewrites this query to use materialized view 
`mv_tv_view_data_av1`.
   The plan of the mv with this patch is changed
   from
   ```
   HiveTableScan(table=[[arc_view, mv_tv_view_data_av1]], 
table:alias=[mv_tv_view_data_av1])
   ```
   to
   ```
   LogicalProject(quartile=[CAST($0):DECIMAL(12, 1)], total=[$1])
     HiveTableScan(table=[[arc_view, mv_tv_view_data_av1]], 
table:alias=[mv_tv_view_data_av1])
   ```
   The mv definition contains a constant value cast to Decimal `cast(1.5 as 
decimal(9,4))`
   ```
   create materialized view mv_tv_view_data_av1 stored as orc TBLPROPERTIES 
('transactional'='true') as
   select
     t.quartile,
     max(t.total_views) total
   from wealth t2,
   (select
     total_views `total_views`,
     sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
     program
   from tv_view_data) t
   where t.program=t2.watches
   group by quartile;
   ```
   
   We need the project with the cast on top of the mv scan because the mv table 
schema is different than the query schema. 
   RowTypes after the patch
   ```
   viewscan rowType: RecordType(DECIMAL(12, 4) quartile, BIGINT total)
   queryRel rowType: RecordType(DECIMAL(12, 1) quartile, BIGINT $f1)
   ```
   before the patch
   ```
   viewscan rowType: RecordType(DECIMAL(12, 1) quartile, BIGINT total)
   queryRel rowType: RecordType(DECIMAL(12, 1) quartile, BIGINT $f1)
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org
For additional commands, e-mail: gitbox-h...@hive.apache.org

Reply via email to