Clear 'xid' in dummy async notify entries written to fill up pages
authorHeikki Linnakangas <[email protected]>
Wed, 12 Nov 2025 19:19:03 +0000 (21:19 +0200)
committerHeikki Linnakangas <[email protected]>
Wed, 12 Nov 2025 19:27:07 +0000 (21:27 +0200)
Before we started to freeze async notify entries (commit 8eeb4a0f7c),
no one looked at the 'xid' on an entry with invalid 'dboid'. But now
we might actually need to freeze it later. Initialize them with
InvalidTransactionId to begin with, to avoid that work later.

Álvaro pointed this out in review of commit 8eeb4a0f7c, but I forgot
to include this change there.

Author: Álvaro Herrera <[email protected]>
Discussion: https://www.postgresql.org/message-id/202511071410[email protected]
Backpatch-through: 14

src/backend/commands/async.c

index 1f36bb72a8b71ba405f2c63ab8e57c61f40e7761..d1a174ff56e1e91b6d081032fe9b1977a3a07def 100644 (file)
@@ -1470,6 +1470,7 @@ asyncQueueAddEntries(ListCell *nextNotify)
             */
            qe.length = QUEUE_PAGESIZE - offset;
            qe.dboid = InvalidOid;
+           qe.xid = InvalidTransactionId;
            qe.data[0] = '\0';  /* empty channel */
            qe.data[1] = '\0';  /* empty payload */
        }