Thread: pgsql/src backend/access/transam/xact.c backen ...

pgsql/src backend/access/transam/xact.c backen ...

From
Tom Lane
Date:
CVSROOT:    /home/projects/pgsql/cvsroot
Module name:    pgsql
Changes by:    tgl@hub.org    01/06/19 15:42:16

Modified files:
    src/backend/access/transam: xact.c
    src/backend/storage/ipc: sinval.c sinvaladt.c
    src/backend/storage/lmgr: lmgr.c
    src/backend/utils/cache: catcache.c inval.c
    src/include/storage: sinval.h sinvaladt.h
    src/include/utils: catcache.h inval.h

Log message:
    Clean up some longstanding problems in shared-cache invalidation.
    SI messages now include the relevant database OID, so that operations
    in one database do not cause useless cache flushes in backends attached
    to other databases.  Declare SI messages properly using a union, to
    eliminate the former assumption that Oid is the same size as int or Index.
    Rewrite the nearly-unreadable code in inval.c, and document it better.
    Arrange for catcache flushes at end of command/transaction to happen before
    relcache flushes do --- this avoids loading a new tuple into the catcache
    while setting up new relcache entry, only to have it be flushed again
    immediately.