mirror of
https://github.com/postgres/postgres.git
synced 2025-04-29 13:56:47 +03:00
Avoid unnecessary shared invalidations in ROLLBACK PREPARED
The performance gain is minimal, but this makes the logic more consistent with AtEOXact_Inval(). No other invalidation is needed in this case as PREPARE takes already care of sending any local ones. Author: Liu Huailing Reviewed-by: Tom Lane, Michael Paquier Discussion: https://postgr.es/m/OSZPR01MB6215AA84D71EF2B3D354CF86BE139@OSZPR01MB6215.jpnprd01.prod.outlook.com
This commit is contained in:
parent
c3928b467a
commit
710796f054
@ -1520,13 +1520,17 @@ FinishPreparedTransaction(const char *gid, bool isCommit)
|
||||
* Handle cache invalidation messages.
|
||||
*
|
||||
* Relcache init file invalidation requires processing both before and
|
||||
* after we send the SI messages. See AtEOXact_Inval()
|
||||
* after we send the SI messages, only when committing. See
|
||||
* AtEOXact_Inval().
|
||||
*/
|
||||
if (hdr->initfileinval)
|
||||
RelationCacheInitFilePreInvalidate();
|
||||
SendSharedInvalidMessages(invalmsgs, hdr->ninvalmsgs);
|
||||
if (hdr->initfileinval)
|
||||
RelationCacheInitFilePostInvalidate();
|
||||
if (isCommit)
|
||||
{
|
||||
if (hdr->initfileinval)
|
||||
RelationCacheInitFilePreInvalidate();
|
||||
SendSharedInvalidMessages(invalmsgs, hdr->ninvalmsgs);
|
||||
if (hdr->initfileinval)
|
||||
RelationCacheInitFilePostInvalidate();
|
||||
}
|
||||
|
||||
/*
|
||||
* Acquire the two-phase lock. We want to work on the two-phase callbacks
|
||||
|
Loading…
x
Reference in New Issue
Block a user