mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Keep rd_newRelfilenodeSubid across overflow.
Teach RelationCacheInvalidate() to keep rd_newRelfilenodeSubid across rel cache message overflows, so that behaviour is now fully deterministic. Noah Misch
This commit is contained in:
parent
42fa810c14
commit
ae9aba69a8
10
src/backend/utils/cache/relcache.c
vendored
10
src/backend/utils/cache/relcache.c
vendored
@ -2163,8 +2163,14 @@ RelationCacheInvalidate(void)
|
||||
/* Must close all smgr references to avoid leaving dangling ptrs */
|
||||
RelationCloseSmgr(relation);
|
||||
|
||||
/* Ignore new relations, since they are never cross-backend targets */
|
||||
if (relation->rd_createSubid != InvalidSubTransactionId)
|
||||
/*
|
||||
* Ignore new relations; no other backend will manipulate them before
|
||||
* we commit. Likewise, before replacing a relation's relfilenode, we
|
||||
* shall have acquired AccessExclusiveLock and drained any applicable
|
||||
* pending invalidations.
|
||||
*/
|
||||
if (relation->rd_createSubid != InvalidSubTransactionId ||
|
||||
relation->rd_newRelfilenodeSubid != InvalidSubTransactionId)
|
||||
continue;
|
||||
|
||||
relcacheInvalsReceived++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user