[ https://issues.apache.org/jira/browse/HIVE-24274?focusedWorklogId=522655&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-522655 ]
ASF GitHub Bot logged work on HIVE-24274: ----------------------------------------- Author: ASF GitHub Bot Created on: 10/Dec/20 10:32 Start Date: 10/Dec/20 10:32 Worklog Time Spent: 10m Work Description: kasakrisz commented on a change in pull request #1706: URL: https://github.com/apache/hive/pull/1706#discussion_r540056128 ########## File path: ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java ########## @@ -1945,6 +1945,18 @@ public RelOptMaterialization getMaterializedViewForRebuild(String dbName, String } } + public List<RelOptMaterialization> getMaterialization( + String queryString, List<String> tablesUsed, HiveTxnManager txnMgr) throws HiveException { + + List<RelOptMaterialization> materializedViews = + HiveMaterializedViewsRegistry.get().getRewritingMaterializedViews(queryString); + if (materializedViews.isEmpty()) { + return Collections.emptyList(); + } + + return filterAugmentMaterializedViews(materializedViews, tablesUsed, txnMgr); Review comment: refactored this method: instead of calling `filterAugmentMaterializedViews` iterate through the mvs got from the registry and call `HiveMaterializedViewUtils.isOutdatedMaterializedView` for each of them. If it returns `null` or `true` filter out. The majority of the code in `getValidMaterializedViews` can be ignored in this scenario because: * all boolean parameters of `getValidMaterializedViews` is false * We pull the MVs from the registry so all of them must exists in the registry In case of multiple HS2 instances the registry may not contains all the possible MVs for rewrite but we initiate the lookup using the registry. I would extend this sql text based rewrite functionality to able to lookup from the metastore in a follow up patch. ---------------------------------------------------------------- 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 Issue Time Tracking ------------------- Worklog Id: (was: 522655) Time Spent: 1h 20m (was: 1h 10m) > Implement Query Text based MaterializedView rewrite > --------------------------------------------------- > > Key: HIVE-24274 > URL: https://issues.apache.org/jira/browse/HIVE-24274 > Project: Hive > Issue Type: Improvement > Reporter: Krisztian Kasa > Assignee: Krisztian Kasa > Priority: Major > Labels: pull-request-available > Time Spent: 1h 20m > Remaining Estimate: 0h > > Besides the way queries are currently rewritten to use materialized views in > Hive this project provides an alternative: > Compare the query text with the materialized views query text stored. If we > found a match the original query's logical plan can be replaced by a scan on > the materialized view. > - Only materialized views which are enabled to rewrite can participate > - Use existing *HiveMaterializedViewsRegistry* through *Hive* object by > adding a lookup method by query text. > - There might be more than one materialized views which have the same query > text. In this case chose the first valid one. > - Validation can be done by calling > *Hive.validateMaterializedViewsFromRegistry()* > - The scope of this first patch is rewriting queries which entire text can be > matched only. > - Use the expanded query text (fully qualified column and table names) for > comparing -- This message was sent by Atlassian Jira (v8.3.4#803005)