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.
|
* Handle cache invalidation messages.
|
||||||
*
|
*
|
||||||
* Relcache init file invalidation requires processing both before and
|
* 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)
|
if (isCommit)
|
||||||
RelationCacheInitFilePreInvalidate();
|
{
|
||||||
SendSharedInvalidMessages(invalmsgs, hdr->ninvalmsgs);
|
if (hdr->initfileinval)
|
||||||
if (hdr->initfileinval)
|
RelationCacheInitFilePreInvalidate();
|
||||||
RelationCacheInitFilePostInvalidate();
|
SendSharedInvalidMessages(invalmsgs, hdr->ninvalmsgs);
|
||||||
|
if (hdr->initfileinval)
|
||||||
|
RelationCacheInitFilePostInvalidate();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Acquire the two-phase lock. We want to work on the two-phase callbacks
|
* Acquire the two-phase lock. We want to work on the two-phase callbacks
|
||||||
|
Loading…
x
Reference in New Issue
Block a user