]> 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:19 +0000 (03:59 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 30 Dec 2008 03:59:19 +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 0ab9f8de11013b3b60a292bc906d76ccc0f382d2..f35eb872859702d1bdabb8dbe8c8762730b0e202 100644 (file)
@@ -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))