seawinde commented on code in PR #62607:
URL: https://github.com/apache/doris/pull/62607#discussion_r3263215457


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/AbstractMaterializedViewWindowRule.java:
##########
@@ -104,20 +117,141 @@ protected Plan rewriteQueryByView(MatchMode matchMode, 
StructInfo queryStructInf
                 viewToQuerySlotMapping,
                 ImmutableMap.of(), cascadesContext
         );
-        // Can not rewrite, bail out
+        // If generic rewrite fails, try roll up from query expressions.
         if (expressionsRewritten.isEmpty()) {
-            materializationContext.recordFailReason(queryStructInfo,
-                    "Rewrite expressions by view in window scan fail",
-                    () -> String.format("expressionToRewritten is %s,\n 
mvExprToMvScanExprMapping is %s,\n"
-                                    + "targetToSourceMapping = %s", 
queryStructInfo.getExpressions(),
-                            
materializationContext.getShuttledExprToScanExprMapping(),
-                            viewToQuerySlotMapping));
-            return null;
+            expressionsRewritten = 
rollupWindowAggregateFunctions(queryStructInfo.getExpressions(),

Review Comment:
    Can this fallback actually be reached for the documented case? Before 
rewriteQueryByView(), the MV rewrite flow calls 
StructInfo.isGraphLogicalEquals(), and window nodes appear to be compared as 
full
   WindowExpression objects. A query window using xx_merge(...) and an MV 
window using xx_union(...) may be rejected before this fallback runs. Please 
add a regression test proving the PR example is
   rewritten, or handle this equivalence during graph comparison.



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to