[ 
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)

Reply via email to