MCPcopy Create free account
hub / github.com/apache/cloudberry / LocalExecuteInvalidationMessage

Function LocalExecuteInvalidationMessage

src/backend/utils/cache/inval.c:620–700  ·  view source on GitHub ↗

* LocalExecuteInvalidationMessage * * Process a single invalidation message (which could be of any type). * Only the local caches are flushed; this does not transmit the message * to other backends. */

Source from the content-addressed store, hash-verified

618 * to other backends.
619 */
620void
621LocalExecuteInvalidationMessage(SharedInvalidationMessage *msg)
622{
623 if (msg->id >= 0)
624 {
625 if (msg->cc.dbId == MyDatabaseId || msg->cc.dbId == InvalidOid)
626 {
627 InvalidateCatalogSnapshot();
628
629 SysCacheInvalidate(msg->cc.id, msg->cc.hashValue);
630
631 CallSyscacheCallbacks(msg->cc.id, msg->cc.hashValue);
632 }
633 }
634 else if (msg->id == SHAREDINVALCATALOG_ID)
635 {
636 if (msg->cat.dbId == MyDatabaseId || msg->cat.dbId == InvalidOid)
637 {
638 InvalidateCatalogSnapshot();
639
640 CatalogCacheFlushCatalog(msg->cat.catId);
641
642 /* CatalogCacheFlushCatalog calls CallSyscacheCallbacks as needed */
643 }
644 }
645 else if (msg->id == SHAREDINVALRELCACHE_ID)
646 {
647 if (msg->rc.dbId == MyDatabaseId || msg->rc.dbId == InvalidOid)
648 {
649 int i;
650
651 if (msg->rc.relId == InvalidOid)
652 RelationCacheInvalidate(false);
653 else
654 RelationCacheInvalidateEntry(msg->rc.relId);
655
656 for (i = 0; i < relcache_callback_count; i++)
657 {
658 struct RELCACHECALLBACK *ccitem = relcache_callback_list + i;
659
660 ccitem->function(ccitem->arg, msg->rc.relId);
661 }
662 }
663 }
664 else if (msg->id == SHAREDINVALSMGR_ID)
665 {
666 /*
667 * We could have smgr entries for relations of other databases, so no
668 * short-circuit test is possible here.
669 */
670 RelFileNodeBackend rnode;
671
672 memset(&rnode, 0, sizeof(RelFileNodeBackend));
673 rnode.node = msg->sm.rnode;
674 rnode.backend = (msg->sm.backend_hi << 16) | (int) msg->sm.backend_lo;
675 smgrclosenode(rnode);
676 }
677 else if (msg->id == SHAREDINVALRELMAP_ID)

Calls 9

SysCacheInvalidateFunction · 0.85
CallSyscacheCallbacksFunction · 0.85
CatalogCacheFlushCatalogFunction · 0.85
RelationCacheInvalidateFunction · 0.85
smgrclosenodeFunction · 0.85
RelationMapInvalidateFunction · 0.85
si_to_strFunction · 0.85

Tested by

no test coverage detected