aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/rewrite/rewriteHandler.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index b99b9930d6a..8abf5e438c1 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -1605,20 +1605,20 @@ fireRIRrules(Query *parsetree, List *activeRIRs, bool forUpdatePushedDown)
rel = heap_open(rte->relid, NoLock);
/*
- * Skip materialized view expansion when it is being created.
+ * Ignore RIR rules for a materialized view, if it is scannable.
*
- * NOTE: This is assuming that we cannot have gotten to this point
- * with a non-scannable materialized view unless it is being
- * populated, and that if it is scannable we want to use the existing
- * contents. It would be nice to have some way to confirm that we're
- * doing the right thing here, but rule expansion doesn't give us a
- * lot to work with, so we are trusting earlier validations and
- * execution steps to get it right.
+ * NOTE: This is assuming that if an MV is scannable then we always
+ * want to use the existing contents, and if it is not scannable we
+ * cannot have gotten to this point unless it is being populated
+ * (otherwise an error should be thrown). It would be nice to have
+ * some way to confirm that we're doing the right thing here, but rule
+ * expansion doesn't give us a lot to work with, so we are trusting
+ * earlier validations to throw error if needed.
*/
if (rel->rd_rel->relkind == RELKIND_MATVIEW && rel->rd_isscannable)
{
heap_close(rel, NoLock);
- break;
+ continue;
}
/*