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

Function _bitmap_xlog_insert_meta

src/backend/access/bitmap/bitmapxlog.c:108–138  ·  view source on GitHub ↗

* _bitmap_xlog_insert_meta() -- update a metapage. */

Source from the content-addressed store, hash-verified

106 * _bitmap_xlog_insert_meta() -- update a metapage.
107 */
108static void
109_bitmap_xlog_insert_meta(XLogRecPtr lsn, XLogReaderState *record)
110{
111 xl_bm_metapage *xlrec = (xl_bm_metapage *) XLogRecGetData(record);
112 Buffer metabuf;
113 Page mp;
114 BMMetaPage metapage;
115
116 metabuf = XLogReadBufferExtended(xlrec->bm_node, xlrec->bm_fork, BM_METAPAGE, RBM_ZERO_AND_LOCK);
117 Assert(BufferIsValid(metabuf));
118
119 mp = BufferGetPage(metabuf);
120 if (PageIsNew(mp))
121 PageInit(mp, BufferGetPageSize(metabuf), 0);
122
123 if (PageGetLSN(mp) < lsn)
124 {
125 metapage = (BMMetaPage)PageGetContents(mp);
126
127 metapage->bm_magic = BITMAP_MAGIC;
128 metapage->bm_version = BITMAP_VERSION;
129 metapage->bm_lov_heapId = xlrec->bm_lov_heapId;
130 metapage->bm_lov_indexId = xlrec->bm_lov_indexId;
131 metapage->bm_lov_lastpage = xlrec->bm_lov_lastpage;
132
133 PageSetLSN(mp, lsn);
134 _bitmap_wrtbuf(metabuf);
135 }
136 else
137 _bitmap_relbuf(metabuf);
138}
139
140/*
141 * _bitmap_xlog_insert_bitmap_lastwords() -- update the last two words

Callers 1

bitmap_redoFunction · 0.85

Calls 5

XLogReadBufferExtendedFunction · 0.85
PageInitFunction · 0.85
PageGetLSNFunction · 0.85
_bitmap_wrtbufFunction · 0.85
_bitmap_relbufFunction · 0.85

Tested by

no test coverage detected