]> granicus.if.org Git - postgresql/commitdiff
Fix oversight in ALTER TABLE ENABLE/DISABLE RULE patch: the new enabled
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 30 Dec 2008 03:59:28 +0000 (03:59 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 30 Dec 2008 03:59:28 +0000 (03:59 +0000)
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.

src/backend/utils/cache/relcache.c

index 73d7d8ef1ed047c1292d718f8c5736423e89a3ba..3b6321112ce05414ffdca3d925a2196df2573803 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.266.2.4 2008/08/10 19:02:46 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.266.2.5 2008/12/30 03:59:28 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -770,6 +770,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))