]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix inconsistent code with shared invalidations of snapshots
authorMichael Paquier <michael@paquier.xyz>
Mon, 28 Dec 2020 13:17:16 +0000 (22:17 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 28 Dec 2020 13:17:16 +0000 (22:17 +0900)
The code in charge of processing a single invalidation message has been
using since 568d413 the structure for relation mapping messages.  This
had fortunately no consequence as both locate the database ID at the
same location, but it could become a problem in the future if this area
of the code changes.

Author: Konstantin Knizhnik
Discussion: https://postgr.es/m/8044c223-4d3a-2cdb-42bf-29940840ce94@postgrespro.ru
Backpatch-through: 9.5

src/backend/utils/cache/inval.c

index 8e9125a12df8611d5cc10caf5f8e17a53643b0ff..2a05f602613a2ec2db7136ef1646d1789f982b6f 100644 (file)
@@ -609,9 +609,9 @@ LocalExecuteInvalidationMessage(SharedInvalidationMessage *msg)
        else if (msg->id == SHAREDINVALSNAPSHOT_ID)
        {
                /* We only care about our own database and shared catalogs */
-               if (msg->rm.dbId == InvalidOid)
+               if (msg->sn.dbId == InvalidOid)
                        InvalidateCatalogSnapshot();
-               else if (msg->rm.dbId == MyDatabaseId)
+               else if (msg->sn.dbId == MyDatabaseId)
                        InvalidateCatalogSnapshot();
        }
        else