diff --git a/src/backend/optimizer/README.cbdb.aqumv b/src/backend/optimizer/README.cbdb.aqumv index 792791e3690..236cf21547a 100644 --- a/src/backend/optimizer/README.cbdb.aqumv +++ b/src/backend/optimizer/README.cbdb.aqumv @@ -228,7 +228,11 @@ Below are not supported now: Group By/Grouping Sets/Rollup/Cube (on mv_query) Window Functions CTE + Distinct Distinct On + UNION/INTERSECT/EXCEPT + FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE, FOR KEY SHARE + Scatter By Refresh Materialized View Create AS Partition Tables diff --git a/src/backend/optimizer/plan/aqumv.c b/src/backend/optimizer/plan/aqumv.c index 818bebc89e9..19516f95e8d 100644 --- a/src/backend/optimizer/plan/aqumv.c +++ b/src/backend/optimizer/plan/aqumv.c @@ -119,6 +119,10 @@ answer_query_using_materialized_views(PlannerInfo *root, /* Group By without agg could be possible though IMMV doesn't support it yet. */ bool can_not_use_mv = (parse->commandType != CMD_SELECT) || (parse->rowMarks != NIL) || + (parse->distinctClause != NIL) || + (parse->scatterClause != NIL) || + (parse->cteList != NIL) || + (parse->setOperations != NULL) || parse->hasWindowFuncs || parse->hasDistinctOn || parse->hasModifyingCTE || @@ -211,7 +215,14 @@ answer_query_using_materialized_views(PlannerInfo *root, mvQuery->hasWindowFuncs || mvQuery->hasDistinctOn || mvQuery->hasModifyingCTE || - mvQuery->hasSubLinks) + mvQuery->hasSubLinks || + (mvQuery->groupClause != NIL) || + /* IVM doesn't support belows now, just in case. */ + (mvQuery->rowMarks != NIL) || + (mvQuery->distinctClause != NIL) || + (mvQuery->cteList != NIL) || + (mvQuery->setOperations != NULL) || + (mvQuery->scatterClause != NIL)) continue; if (list_length(mvQuery->jointree->fromlist) != 1)