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:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]