aboutsummaryrefslogtreecommitdiff
path: root/src/backend/rewrite/rewriteDefine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/rewrite/rewriteDefine.c')
-rw-r--r--src/backend/rewrite/rewriteDefine.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 52c55def155..5a4c5695946 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -240,14 +240,12 @@ DefineQueryRewrite(char *rulename,
/*
* If we are installing an ON SELECT rule, we had better grab
* AccessExclusiveLock to ensure no SELECTs are currently running on the
- * event relation. For other types of rules, it is sufficient to grab
- * ShareRowExclusiveLock to lock out insert/update/delete actions and to
- * ensure that we lock out current CREATE RULE statements.
+ * event relation. For other types of rules, it would be sufficient to
+ * grab ShareRowExclusiveLock to lock out insert/update/delete actions and
+ * to ensure that we lock out current CREATE RULE statements; but because
+ * of race conditions in access to catalog entries, we can't do that yet.
*/
- if (event_type == CMD_SELECT)
- event_relation = heap_open(event_relid, AccessExclusiveLock);
- else
- event_relation = heap_open(event_relid, ShareRowExclusiveLock);
+ event_relation = heap_open(event_relid, AccessExclusiveLock);
/*
* Verify relation is of a type that rules can sensibly be applied to.