From: Tom Lane Date: Tue, 30 Dec 2008 03:59:19 +0000 (+0000) Subject: Fix oversight in ALTER TABLE ENABLE/DISABLE RULE patch: the new enabled X-Git-Tag: REL8_4_BETA1~511 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=1b1b0ac8d027044726fc09090a6112eb63c12ac4;p=postgresql.git Fix oversight in ALTER TABLE ENABLE/DISABLE RULE patch: the new enabled field needs to be included in equalRuleLocks() comparisons, else updates will fail to propagate into relcache entries when they have positive reference count (ie someone is using the relcache entry). Per report from Alex Hunsaker. --- diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 0ab9f8de110..f35eb872859 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.278 2008/12/03 13:05:22 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.279 2008/12/30 03:59:19 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -777,6 +777,8 @@ equalRuleLocks(RuleLock *rlock1, RuleLock *rlock2) return false; if (rule1->attrno != rule2->attrno) return false; + if (rule1->enabled != rule2->enabled) + return false; if (rule1->isInstead != rule2->isInstead) return false; if (!equal(rule1->qual, rule2->qual))