diff options
Diffstat (limited to 'src/backend/rewrite/rewriteDefine.c')
-rw-r--r-- | src/backend/rewrite/rewriteDefine.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index eab4d7367c2..f540432ccbc 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -191,7 +191,7 @@ InsertRule(char *rulname, * DefineRule * Execute a CREATE RULE command. */ -Oid +ObjectAddress DefineRule(RuleStmt *stmt, const char *queryString) { List *actions; @@ -225,7 +225,7 @@ DefineRule(RuleStmt *stmt, const char *queryString) * This is essentially the same as DefineRule() except that the rule's * action and qual have already been passed through parse analysis. */ -Oid +ObjectAddress DefineQueryRewrite(char *rulename, Oid event_relid, Node *event_qual, @@ -239,6 +239,7 @@ DefineQueryRewrite(char *rulename, Query *query; bool RelisBecomingView = false; Oid ruleId = InvalidOid; + ObjectAddress address; /* * If we are installing an ON SELECT rule, we had better grab @@ -604,10 +605,12 @@ DefineQueryRewrite(char *rulename, heap_close(relationRelation, RowExclusiveLock); } + ObjectAddressSet(address, RewriteRelationId, ruleId); + /* Close rel, but keep lock till commit... */ heap_close(event_relation, NoLock); - return ruleId; + return address; } /* @@ -897,7 +900,7 @@ RangeVarCallbackForRenameRule(const RangeVar *rv, Oid relid, Oid oldrelid, /* * Rename an existing rewrite rule. */ -Oid +ObjectAddress RenameRewriteRule(RangeVar *relation, const char *oldName, const char *newName) { @@ -907,6 +910,7 @@ RenameRewriteRule(RangeVar *relation, const char *oldName, HeapTuple ruletup; Form_pg_rewrite ruleform; Oid ruleOid; + ObjectAddress address; /* * Look up name, check permissions, and acquire lock (which we will NOT @@ -969,10 +973,12 @@ RenameRewriteRule(RangeVar *relation, const char *oldName, */ CacheInvalidateRelcache(targetrel); + ObjectAddressSet(address, RewriteRelationId, ruleOid); + /* * Close rel, but keep exclusive lock! */ relation_close(targetrel, NoLock); - return ruleOid; + return address; } |