PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | SharedInvalCatcacheMsg |
struct | SharedInvalCatalogMsg |
struct | SharedInvalRelcacheMsg |
struct | SharedInvalSmgrMsg |
struct | SharedInvalRelmapMsg |
struct | SharedInvalSnapshotMsg |
union | SharedInvalidationMessage |
Macros | |
#define | SHAREDINVALCATALOG_ID (-1) |
#define | SHAREDINVALRELCACHE_ID (-2) |
#define | SHAREDINVALSMGR_ID (-3) |
#define | SHAREDINVALRELMAP_ID (-4) |
#define | SHAREDINVALSNAPSHOT_ID (-5) |
Functions | |
void | SendSharedInvalidMessages (const SharedInvalidationMessage *msgs, int n) |
void | ReceiveSharedInvalidMessages (void(*invalFunction)(SharedInvalidationMessage *msg), void(*resetFunction)(void)) |
void | HandleCatchupInterrupt (void) |
void | ProcessCatchupInterrupt (void) |
int | xactGetCommittedInvalidationMessages (SharedInvalidationMessage **msgs, bool *RelcacheInitFileInval) |
int | inplaceGetInvalidationMessages (SharedInvalidationMessage **msgs, bool *RelcacheInitFileInval) |
void | ProcessCommittedInvalidationMessages (SharedInvalidationMessage *msgs, int nmsgs, bool RelcacheInitFileInval, Oid dbid, Oid tsid) |
void | LocalExecuteInvalidationMessage (SharedInvalidationMessage *msg) |
Variables | |
PGDLLIMPORT uint64 | SharedInvalidMessageCounter |
PGDLLIMPORT volatile sig_atomic_t | catchupInterruptPending |
void HandleCatchupInterrupt | ( | void | ) |
Definition at line 154 of file sinval.c.
References catchupInterruptPending, MyLatch, and SetLatch().
Referenced by procsignal_sigusr1_handler().
int inplaceGetInvalidationMessages | ( | SharedInvalidationMessage ** | msgs, |
bool * | RelcacheInitFileInval | ||
) |
Definition at line 1015 of file inval.c.
References Assert, CatCacheMsgs, InvalidationInfo::CurrentCmdInvalidMsgs, inplaceInvalInfo, NumMessagesInGroup, palloc(), ProcessMessageSubGroupMulti, InvalidationInfo::RelcacheInitFileInval, and RelCacheMsgs.
Referenced by heap_inplace_update_and_unlock().
void LocalExecuteInvalidationMessage | ( | SharedInvalidationMessage * | msg | ) |
Definition at line 762 of file inval.c.
References RELCACHECALLBACK::arg, RelFileLocatorBackend::backend, SharedInvalSmgrMsg::backend_hi, SharedInvalSmgrMsg::backend_lo, CallSyscacheCallbacks(), SharedInvalidationMessage::cat, CatalogCacheFlushCatalog(), SharedInvalCatalogMsg::catId, SharedInvalidationMessage::cc, SharedInvalCatcacheMsg::dbId, SharedInvalCatalogMsg::dbId, SharedInvalRelcacheMsg::dbId, SharedInvalRelmapMsg::dbId, SharedInvalSnapshotMsg::dbId, elog, FATAL, RELCACHECALLBACK::function, SharedInvalCatcacheMsg::hashValue, i, SharedInvalCatcacheMsg::id, SharedInvalidationMessage::id, InvalidateCatalogSnapshot(), InvalidOid, RelFileLocatorBackend::locator, MyDatabaseId, SharedInvalidationMessage::rc, RelationCacheInvalidate(), RelationCacheInvalidateEntry(), RelationMapInvalidate(), relcache_callback_count, relcache_callback_list, SharedInvalRelcacheMsg::relId, SharedInvalSmgrMsg::rlocator, SharedInvalidationMessage::rm, SHAREDINVALCATALOG_ID, SHAREDINVALRELCACHE_ID, SHAREDINVALRELMAP_ID, SHAREDINVALSMGR_ID, SHAREDINVALSNAPSHOT_ID, SharedInvalidationMessage::sm, smgrreleaserellocator(), SharedInvalidationMessage::sn, and SysCacheInvalidate().
Referenced by AcceptInvalidationMessages(), AtEOSubXact_Inval(), AtEOXact_Inval(), CommandEndInvalidationMessages(), ReorderBufferExecuteInvalidations(), and ReorderBufferImmediateInvalidation().
void ProcessCatchupInterrupt | ( | void | ) |
Definition at line 174 of file sinval.c.
References AcceptInvalidationMessages(), catchupInterruptPending, CommitTransactionCommand(), DEBUG4, elog, IsTransactionOrTransactionBlock(), and StartTransactionCommand().
Referenced by HandleAutoVacLauncherInterrupts(), and ProcessClientReadInterrupt().
void ProcessCommittedInvalidationMessages | ( | SharedInvalidationMessage * | msgs, |
int | nmsgs, | ||
bool | RelcacheInitFileInval, | ||
Oid | dbid, | ||
Oid | tsid | ||
) |
Definition at line 1062 of file inval.c.
References DatabasePath, DEBUG4, elog, GetDatabasePath(), OidIsValid, pfree(), RelationCacheInitFilePostInvalidate(), RelationCacheInitFilePreInvalidate(), and SendSharedInvalidMessages().
Referenced by heap_xlog_inplace(), standby_redo(), and xact_redo_commit().
void ReceiveSharedInvalidMessages | ( | void(*)(SharedInvalidationMessage *msg) | invalFunction, |
void(*)(void) | resetFunction | ||
) |
Definition at line 69 of file sinval.c.
References catchupInterruptPending, DEBUG4, elog, MAXINVALMSGS, SharedInvalidMessageCounter, SICleanupQueue(), and SIGetDataEntries().
Referenced by AcceptInvalidationMessages().
void SendSharedInvalidMessages | ( | const SharedInvalidationMessage * | msgs, |
int | n | ||
) |
Definition at line 47 of file sinval.c.
References SIInsertDataEntries().
Referenced by AtEOXact_Inval(), AtInplace_Inval(), CacheInvalidateRelmap(), CacheInvalidateSmgr(), FinishPreparedTransaction(), and ProcessCommittedInvalidationMessages().
int xactGetCommittedInvalidationMessages | ( | SharedInvalidationMessage ** | msgs, |
bool * | RelcacheInitFileInval | ||
) |
Definition at line 939 of file inval.c.
References Assert, CatCacheMsgs, InvalidationInfo::CurrentCmdInvalidMsgs, CurTransactionContext, TransInvalidationInfo::ii, MemoryContextAlloc(), TransInvalidationInfo::my_level, NumMessagesInGroup, TransInvalidationInfo::parent, TransInvalidationInfo::PriorCmdInvalidMsgs, ProcessMessageSubGroupMulti, InvalidationInfo::RelcacheInitFileInval, RelCacheMsgs, and transInvalInfo.
Referenced by RecordTransactionCommit(), and StartPrepare().
|
extern |
Definition at line 39 of file sinval.c.
Referenced by HandleCatchupInterrupt(), ProcessCatchupInterrupt(), ProcessClientReadInterrupt(), and ReceiveSharedInvalidMessages().
|
extern |
Definition at line 24 of file sinval.c.
Referenced by get_object_address(), RangeVarGetAndCheckCreationNamespace(), RangeVarGetRelidExtended(), and ReceiveSharedInvalidMessages().