diff --git a/contrib/pageinspect/brinfuncs.c b/contrib/pageinspect/brinfuncs.c index 13e78524704..2c3da717e71 100644 --- a/contrib/pageinspect/brinfuncs.c +++ b/contrib/pageinspect/brinfuncs.c @@ -31,7 +31,6 @@ PG_FUNCTION_INFO_V1(brin_page_type); PG_FUNCTION_INFO_V1(brin_page_items); PG_FUNCTION_INFO_V1(brin_metapage_info); PG_FUNCTION_INFO_V1(brin_revmap_data); -PG_FUNCTION_INFO_V1(brin_upper_data); #define IS_BRIN(r) ((r)->rd_rel->relam == BRIN_AM_OID) @@ -82,9 +81,6 @@ brin_page_type(PG_FUNCTION_ARGS) case BRIN_PAGETYPE_REGULAR: type = "regular"; break; - case BRIN_PAGETYPE_UPPER: - type = "upper"; - break; default: type = psprintf("unknown (%02x)", BrinPageType(page)); break; @@ -453,63 +449,3 @@ brin_revmap_data(PG_FUNCTION_ARGS) SRF_RETURN_DONE(fctx); } - - -/* - * Return the BlockNumber array stored in a BRIN upper page - */ -Datum -brin_upper_data(PG_FUNCTION_ARGS) -{ - struct - { - BlockNumber *blks; - int idx; - } *state; - FuncCallContext *fctx; - ItemPointerData *tid; - - if (!superuser()) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - (errmsg("must be superuser to use raw page functions")))); - - if (SRF_IS_FIRSTCALL()) - { - bytea *raw_page = PG_GETARG_BYTEA_P(0); - MemoryContext mctx; - Page page; - - /* minimally verify the page we got */ - page = verify_brin_page(raw_page, BRIN_PAGETYPE_UPPER, "upper"); - - /* create a function context for cross-call persistence */ - fctx = SRF_FIRSTCALL_INIT(); - - /* switch to memory context appropriate for multiple function calls */ - mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); - - state = palloc(sizeof(*state)); - state->blks = ((RevmapUpperBlockContents *) PageGetContents(page))->rm_blocks; - state->idx = 0; - - fctx->user_fctx = state; - - MemoryContextSwitchTo(mctx); - } - - fctx = SRF_PERCALL_SETUP(); - state = fctx->user_fctx; - - - if (state->idx < REVMAP_UPPER_PAGE_MAXITEMS) - { - tid = (ItemPointerData*) palloc(sizeof(ItemPointerData)); - ItemPointerSetBlockNumber(tid, (BlockNumber) state->blks[state->idx++]); - ItemPointerSetOffsetNumber(tid, (OffsetNumber) 0); - SRF_RETURN_NEXT(fctx, PointerGetDatum(tid)); - } - - SRF_RETURN_DONE(fctx); -} - diff --git a/contrib/pageinspect/pageinspect--1.5.sql b/contrib/pageinspect/pageinspect--1.5.sql index be456d63940..afcfd497b39 100644 --- a/contrib/pageinspect/pageinspect--1.5.sql +++ b/contrib/pageinspect/pageinspect--1.5.sql @@ -213,15 +213,6 @@ RETURNS SETOF tid AS 'MODULE_PATHNAME', 'brin_revmap_data' LANGUAGE C STRICT PARALLEL SAFE; --- --- brin_upper_data() --- -CREATE FUNCTION brin_upper_data(IN page bytea, - OUT pages tid) - RETURNS SETOF tid -AS 'MODULE_PATHNAME', 'brin_upper_data' -LANGUAGE C STRICT PARALLEL SAFE; - -- -- brin_page_items() -- diff --git a/src/backend/access/brin/brin.c b/src/backend/access/brin/brin.c index e59ef527465..9b92922c01b 100644 --- a/src/backend/access/brin/brin.c +++ b/src/backend/access/brin/brin.c @@ -298,7 +298,7 @@ brininsert(Relation idxRel, Datum *values, bool *nulls, */ if (!brin_doupdate(idxRel, pagesPerRange, revmap, heapBlk, buf, off, origtup, origsz, newtup, newsz, - samepage, false)) + samepage)) { /* no luck; start over */ MemoryContextResetAndDeleteChildren(tupcxt); @@ -907,9 +907,6 @@ brinbuild(Relation heap, Relation index, IndexInfo *indexInfo) UnlockReleaseBuffer(meta); - if (isAo) - brin_init_upper_pages(index, BrinGetPagesPerRange(index)); - /* * Initialize our state, including the deformed tuple state. */ @@ -1521,7 +1518,7 @@ summarize_range(IndexInfo *indexInfo, BrinBuildState *state, Relation heapRel, didupdate = brin_doupdate(state->bs_irel, state->bs_pagesPerRange, state->bs_rmAccess, heapBlk, phbuf, offset, - phtup, phsz, newtup, newsize, samepage, false); + phtup, phsz, newtup, newsize, samepage); brin_free_tuple(phtup); brin_free_tuple(newtup); diff --git a/src/backend/access/brin/brin_pageops.c b/src/backend/access/brin/brin_pageops.c index c93067968c6..e352c9910e0 100644 --- a/src/backend/access/brin/brin_pageops.c +++ b/src/backend/access/brin/brin_pageops.c @@ -56,7 +56,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange, Buffer oldbuf, OffsetNumber oldoff, const BrinTuple *origtup, Size origsz, const BrinTuple *newtup, Size newsz, - bool samepage, bool skipextend) + bool samepage) { Page oldpage; ItemId oldlp; @@ -78,9 +78,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange, return false; /* keep compiler quiet */ } - /* make sure the revmap is long enough to contain the entry we need */ - if (!skipextend) - brinRevmapExtend(revmap, heapBlk); + brinRevmapExtend(revmap, heapBlk); if (!samepage) { @@ -596,7 +594,7 @@ brin_evacuate_page(Relation idxRel, BlockNumber pagesPerRange, LockBuffer(buf, BUFFER_LOCK_UNLOCK); if (!brin_doupdate(idxRel, pagesPerRange, revmap, tup->bt_blkno, - buf, off, tup, sz, tup, sz, false, true)) + buf, off, tup, sz, tup, sz, false)) off--; /* retry */ LockBuffer(buf, BUFFER_LOCK_SHARE); @@ -655,8 +653,7 @@ brin_page_cleanup(Relation idxrel, Buffer buf) /* Nothing to be done for non-regular index pages */ if (BRIN_IS_META_PAGE(BufferGetPage(buf)) || - BRIN_IS_REVMAP_PAGE(BufferGetPage(buf)) || - BRIN_IS_UPPER_PAGE(BufferGetPage(buf))) + BRIN_IS_REVMAP_PAGE(BufferGetPage(buf))) return; /* Measure free space and record it */ diff --git a/src/backend/access/brin/brin_revmap.c b/src/backend/access/brin/brin_revmap.c index 948797a44fa..71669009233 100644 --- a/src/backend/access/brin/brin_revmap.c +++ b/src/backend/access/brin/brin_revmap.c @@ -51,10 +51,7 @@ static BlockNumber revmap_get_blkno(BrinRevmap *revmap, static Buffer revmap_get_buffer(BrinRevmap *revmap, BlockNumber heapBlk); static BlockNumber revmap_extend_and_get_blkno(BrinRevmap *revmap, BlockNumber heapBlk); -static BlockNumber revmap_extend_and_get_blkno_ao(BrinRevmap *revmap, - BlockNumber heapBlk); -static BlockNumber revmap_physical_extend(BrinRevmap *revmap); - +static void revmap_physical_extend(BrinRevmap *revmap); /* * Initialize an access object for a range map. This must be freed by @@ -110,10 +107,7 @@ brinRevmapExtend(BrinRevmap *revmap, BlockNumber heapBlk) { BlockNumber mapBlk PG_USED_FOR_ASSERTS_ONLY; - if (revmap->rm_isAo) - mapBlk = revmap_extend_and_get_blkno_ao(revmap, heapBlk); - else - mapBlk = revmap_extend_and_get_blkno(revmap, heapBlk); + mapBlk = revmap_extend_and_get_blkno(revmap, heapBlk); /* Ensure the buffer we got is in the expected range */ Assert(mapBlk != InvalidBlockNumber && @@ -460,30 +454,6 @@ revmap_get_blkno_heap(BrinRevmap *revmap, BlockNumber heapBlk) return InvalidBlockNumber; } -static BlockNumber -revmap_get_blkno_ao(BrinRevmap *revmap, BlockNumber heapBlk) -{ - BlockNumber targetblk; - BlockNumber targetupperblk; - BlockNumber targetupperidx; - Buffer upperbuf; - RevmapUpperBlockContents *contents; - BlockNumber *blks; - - targetupperblk = HEAPBLK_TO_REVMAP_UPPER_BLK(revmap->rm_pagesPerRange, heapBlk) + 1; - targetupperidx = HEAPBLK_TO_REVMAP_UPPER_IDX(revmap->rm_pagesPerRange, heapBlk); - upperbuf = ReadBuffer(revmap->rm_irel, targetupperblk); - contents = (RevmapUpperBlockContents*) PageGetContents(BufferGetPage(upperbuf)); - blks = (BlockNumber*) contents->rm_blocks; - targetblk = blks[targetupperidx]; - ReleaseBuffer(upperbuf); - - if (targetblk == 0) - return InvalidBlockNumber; - - return targetblk; -} - /* * Given a heap block number, find the corresponding physical revmap block * number and return it. If the revmap page hasn't been allocated yet, return @@ -493,7 +463,7 @@ static BlockNumber revmap_get_blkno(BrinRevmap *revmap, BlockNumber heapBlk) { if (revmap->rm_isAo) - return revmap_get_blkno_ao(revmap, heapBlk); + return -1; else return revmap_get_blkno_heap(revmap, heapBlk); } @@ -559,76 +529,11 @@ revmap_extend_and_get_blkno(BrinRevmap *revmap, BlockNumber heapBlk) return targetblk; } -/* - * Given a heap block number, find the corresponding physical revmap block - * number and return it. If the revmap page hasn't been allocated yet, extend - * the revmap until it is. - * - * This is the function called in brin on ao/cs table. - */ -static BlockNumber -revmap_extend_and_get_blkno_ao(BrinRevmap *revmap, BlockNumber heapBlk) -{ - BlockNumber targetupperblk; - BlockNumber targetupperindex; - Buffer upperbuffer; - RevmapUpperBlockContents *contents; - BlockNumber *blks; - BlockNumber oldBlk; - BlockNumber newBlk; - - targetupperblk = HEAPBLK_TO_REVMAP_UPPER_BLK(revmap->rm_pagesPerRange, heapBlk) + 1; - targetupperindex = HEAPBLK_TO_REVMAP_UPPER_IDX(revmap->rm_pagesPerRange, heapBlk); - upperbuffer = ReadBuffer(revmap->rm_irel, targetupperblk); - - LockBuffer(upperbuffer, BUFFER_LOCK_EXCLUSIVE); - contents = (RevmapUpperBlockContents*) PageGetContents(BufferGetPage(upperbuffer)); - blks = (BlockNumber*) contents->rm_blocks; - oldBlk = blks[targetupperindex]; - if (oldBlk == 0) - { - CHECK_FOR_INTERRUPTS(); - newBlk = InvalidBlockNumber; - while (newBlk == InvalidBlockNumber) - { - newBlk = revmap_physical_extend(revmap); - } - Assert(newBlk > revmap->rm_lastRevmapPage); - revmap->rm_lastRevmapPage = newBlk; - - blks[targetupperindex] = revmap->rm_lastRevmapPage; - MarkBufferDirty(upperbuffer); - - if (RelationNeedsWAL(revmap->rm_irel)) - { - xl_brin_revmap_extend_upper xlrec; - XLogRecPtr recptr; - - xlrec.heapBlk = heapBlk; - xlrec.pagesPerRange = revmap->rm_pagesPerRange; - xlrec.revmapBlk = revmap->rm_lastRevmapPage; - XLogBeginInsert(); - XLogRegisterData((char *) &xlrec, SizeOfBrinRevmapExtendUpper); - XLogRegisterBuffer(0, upperbuffer, 0); - recptr = XLogInsert(RM_BRIN_ID, XLOG_BRIN_REVMAP_EXTEND_UPPER); - PageSetLSN(BufferGetPage(upperbuffer), recptr); - } - - UnlockReleaseBuffer(upperbuffer); - return revmap->rm_lastRevmapPage; - } - else - { - UnlockReleaseBuffer(upperbuffer); - return oldBlk; - } -} - /* * Try to extend the revmap by one page. This might not happen for a number of * reasons; caller is expected to retry until the expected outcome is obtained. */ -static BlockNumber +static void revmap_physical_extend(BrinRevmap *revmap) { Buffer buf; @@ -657,7 +562,7 @@ revmap_physical_extend(BrinRevmap *revmap) { revmap->rm_lastRevmapPage = metadata->lastRevmapPage; LockBuffer(revmap->rm_metaBuf, BUFFER_LOCK_UNLOCK); - return InvalidBlockNumber; + return; } mapBlk = metadata->lastRevmapPage + 1; @@ -686,7 +591,7 @@ revmap_physical_extend(BrinRevmap *revmap) UnlockRelationForExtension(irel, ExclusiveLock); LockBuffer(revmap->rm_metaBuf, BUFFER_LOCK_UNLOCK); ReleaseBuffer(buf); - return InvalidBlockNumber; + return; } LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); page = BufferGetPage(buf); @@ -711,7 +616,7 @@ revmap_physical_extend(BrinRevmap *revmap) brin_evacuate_page(irel, revmap->rm_pagesPerRange, revmap, buf); /* have caller start over */ - return InvalidBlockNumber; + return; } /* @@ -761,64 +666,6 @@ revmap_physical_extend(BrinRevmap *revmap) LockBuffer(revmap->rm_metaBuf, BUFFER_LOCK_UNLOCK); UnlockReleaseBuffer(buf); - - return mapBlk; -} - -/* - * When we build a brin in ao/aocs table, brin has a upper level. All the - * blocks used in upper level will be initialized once. - */ -void -brin_init_upper_pages(Relation index, BlockNumber pagesPerRange) -{ - Buffer buf; - Page page; - Buffer metaBuf; - Page metaPage; - BrinMetaPageData *metadata; - int maxPage; - - metaBuf = ReadBuffer(index, BRIN_METAPAGE_BLKNO); - LockBuffer(metaBuf, BUFFER_LOCK_EXCLUSIVE); - metaPage = BufferGetPage(metaBuf); - - maxPage = REVMAP_UPPER_PAGE_TOTAL_NUM(pagesPerRange); - for (BlockNumber page_index = 1; - page_index <= maxPage; - ++page_index) - { - buf = ReadBuffer(index, P_NEW); - LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); - - brin_page_init(BufferGetPage(buf), BRIN_PAGETYPE_UPPER); - - MarkBufferDirty(buf); - - metadata = (BrinMetaPageData *) PageGetContents(metaPage); - metadata->lastRevmapPage = page_index; - - if (RelationNeedsWAL(index)) - { - xl_brin_createupperblk xlrec; - XLogRecPtr recptr; - - xlrec.targetBlk = page_index; - XLogBeginInsert(); - XLogRegisterData((char *) &xlrec, SizeOfBrinCreateUpperBlk); - XLogRegisterBuffer(0, metaBuf, 0); - XLogRegisterBuffer(1, buf, REGBUF_WILL_INIT); - recptr = XLogInsert(RM_BRIN_ID, XLOG_BRIN_REVMAP_INIT_UPPER_BLK); - - page = BufferGetPage(buf); - PageSetLSN(metaPage, recptr); - PageSetLSN(page, recptr); - } - - UnlockReleaseBuffer(buf); - } - - UnlockReleaseBuffer(metaBuf); } /* diff --git a/src/backend/access/brin/brin_xlog.c b/src/backend/access/brin/brin_xlog.c index 72403f2474d..a4bceda39c9 100644 --- a/src/backend/access/brin/brin_xlog.c +++ b/src/backend/access/brin/brin_xlog.c @@ -39,46 +39,6 @@ brin_xlog_createidx(XLogReaderState *record) UnlockReleaseBuffer(buf); } -static void -brin_xlog_revmap_init_upper_blk(XLogReaderState *record) -{ - XLogRecPtr lsn = record->EndRecPtr; - xl_brin_createupperblk *xlrec = (xl_brin_createupperblk *) XLogRecGetData(record); - Buffer buf; - Page page; - XLogRedoAction action; - Buffer metabuf; - - /* Update the metapage */ - action = XLogReadBufferForRedo(record, 0, &metabuf); - if (action == BLK_NEEDS_REDO) - { - Page metapg; - BrinMetaPageData *metadata; - - metapg = BufferGetPage(metabuf); - metadata = (BrinMetaPageData *) PageGetContents(metapg); - - Assert(metadata->lastRevmapPage == xlrec->targetBlk - 1); - metadata->lastRevmapPage = xlrec->targetBlk; - - PageSetLSN(metapg, lsn); - MarkBufferDirty(metabuf); - } - - /* create upper blk */ - buf = XLogInitBufferForRedo(record, 1); - page = (Page) BufferGetPage(buf); - brin_page_init(page, BRIN_PAGETYPE_UPPER); - - PageSetLSN(page, lsn); - MarkBufferDirty(buf); - - UnlockReleaseBuffer(buf); - if (BufferIsValid(metabuf)) - UnlockReleaseBuffer(metabuf); -} - /* * Common part of an insert or update. Inserts the new tuple and updates the * revmap. @@ -346,50 +306,6 @@ brin_xlog_desummarize_page(XLogReaderState *record) UnlockReleaseBuffer(buffer); } -/* - * We have an extra upper layer in the brin revmap of the - * ao / aocs table. Set the block number of revmap page by this - * function. - */ -static void -brinSetRevmapBlockNumber(Buffer buf, BlockNumber pagesPerRange, - BlockNumber heapBlk, BlockNumber revmapBlk) -{ - RevmapUpperBlockContents *contents; - Page page; - BlockNumber targetupperindex; - BlockNumber *blks; - - page = BufferGetPage(buf); - contents = (RevmapUpperBlockContents*) PageGetContents(page); - targetupperindex = HEAPBLK_TO_REVMAP_UPPER_IDX(pagesPerRange, heapBlk); - blks = (BlockNumber*) contents->rm_blocks; - blks[targetupperindex] = revmapBlk; -} - -static void -brin_xlog_revmap_extend_upper(XLogReaderState *record) -{ - XLogRecPtr lsn = record->EndRecPtr; - xl_brin_revmap_extend_upper *xlrec; - Buffer buf; - Page page; - XLogRedoAction action; - - xlrec = (xl_brin_revmap_extend_upper *) XLogRecGetData(record); - action = XLogReadBufferForRedo(record, 0, &buf); - if (action == BLK_NEEDS_REDO) - { - page = (Page) BufferGetPage(buf); - brinSetRevmapBlockNumber(buf, xlrec->pagesPerRange, xlrec->heapBlk, xlrec->revmapBlk); - PageSetLSN(page, lsn); - MarkBufferDirty(buf); - } - - if (BufferIsValid(buf)) - UnlockReleaseBuffer(buf); -} - void brin_redo(XLogReaderState *record) { @@ -400,9 +316,6 @@ brin_redo(XLogReaderState *record) case XLOG_BRIN_CREATE_INDEX: brin_xlog_createidx(record); break; - case XLOG_BRIN_REVMAP_INIT_UPPER_BLK: - brin_xlog_revmap_init_upper_blk(record); - break; case XLOG_BRIN_INSERT: brin_xlog_insert(record); break; @@ -418,9 +331,6 @@ brin_redo(XLogReaderState *record) case XLOG_BRIN_DESUMMARIZE: brin_xlog_desummarize_page(record); break; - case XLOG_BRIN_REVMAP_EXTEND_UPPER: - brin_xlog_revmap_extend_upper(record); - break; default: elog(PANIC, "brin_redo: unknown op code %u", info); } diff --git a/src/include/access/brin_page.h b/src/include/access/brin_page.h index b2d6f986ced..3b76c5ae730 100644 --- a/src/include/access/brin_page.h +++ b/src/include/access/brin_page.h @@ -51,12 +51,10 @@ typedef struct BrinSpecialSpace #define BRIN_PAGETYPE_META 0xF091 #define BRIN_PAGETYPE_REVMAP 0xF092 #define BRIN_PAGETYPE_REGULAR 0xF093 -#define BRIN_PAGETYPE_UPPER 0xF094 #define BRIN_IS_META_PAGE(page) (BrinPageType(page) == BRIN_PAGETYPE_META) #define BRIN_IS_REVMAP_PAGE(page) (BrinPageType(page) == BRIN_PAGETYPE_REVMAP) #define BRIN_IS_REGULAR_PAGE(page) (BrinPageType(page) == BRIN_PAGETYPE_REGULAR) -#define BRIN_IS_UPPER_PAGE(page) (BrinPageType(page) == BRIN_PAGETYPE_UPPER) /* flags for BrinSpecialSpace */ #define BRIN_EVACUATE_PAGE (1 << 0) @@ -88,11 +86,6 @@ typedef struct RevmapContents ItemPointerData rm_tids[1]; } RevmapContents; -typedef struct RevmapUpperBlockContents -{ - BlockNumber rm_blocks[1]; -} RevmapUpperBlockContents; - #define REVMAP_CONTENT_SIZE \ (BLCKSZ - MAXALIGN(SizeOfPageHeaderData) - \ offsetof(RevmapContents, rm_tids) - \ @@ -101,10 +94,4 @@ typedef struct RevmapUpperBlockContents #define REVMAP_PAGE_MAXITEMS \ (REVMAP_CONTENT_SIZE / sizeof(ItemPointerData)) -#define REVMAP_UPPER_PAGE_MAXITEMS \ - (REVMAP_CONTENT_SIZE/ sizeof(BlockNumber)) - -#define REVMAP_INDEX_PAGE_NUM \ - (65536 / REVMAP_PAGE_MAXITEMS) * 65536 - #endif /* BRIN_PAGE_H */ diff --git a/src/include/access/brin_pageops.h b/src/include/access/brin_pageops.h index bfb31f6e387..fdd338e6bfc 100644 --- a/src/include/access/brin_pageops.h +++ b/src/include/access/brin_pageops.h @@ -18,7 +18,7 @@ extern bool brin_doupdate(Relation idxrel, BlockNumber pagesPerRange, Buffer oldbuf, OffsetNumber oldoff, const BrinTuple *origtup, Size origsz, const BrinTuple *newtup, Size newsz, - bool samepage, bool skipextend); + bool samepage); extern bool brin_can_do_samepage_update(Buffer buffer, Size origsz, Size newsz); extern OffsetNumber brin_doinsert(Relation idxrel, BlockNumber pagesPerRange, diff --git a/src/include/access/brin_revmap.h b/src/include/access/brin_revmap.h index ef230e4e5f1..7fbeee4185b 100644 --- a/src/include/access/brin_revmap.h +++ b/src/include/access/brin_revmap.h @@ -30,12 +30,6 @@ ((heapBlk / pagesPerRange) / REVMAP_PAGE_MAXITEMS) #define HEAPBLK_TO_REVMAP_INDEX(pagesPerRange, heapBlk) \ ((heapBlk / pagesPerRange) % REVMAP_PAGE_MAXITEMS) -#define HEAPBLK_TO_REVMAP_UPPER_BLK(pagesPerRange, heapBlk) \ - (HEAPBLK_TO_REVMAP_BLK(pagesPerRange, heapBlk) / REVMAP_UPPER_PAGE_MAXITEMS) -#define HEAPBLK_TO_REVMAP_UPPER_IDX(pagesPerRange, heapBlk) \ - (HEAPBLK_TO_REVMAP_BLK(pagesPerRange, heapBlk) % REVMAP_UPPER_PAGE_MAXITEMS) -#define REVMAP_UPPER_PAGE_TOTAL_NUM(pagesPerRange) \ - (HEAPBLK_TO_REVMAP_UPPER_BLK(pagesPerRange, MaxBlockNumber) + 1) /* struct definition lives in brin_revmap.c */ typedef struct BrinRevmap BrinRevmap; @@ -55,7 +49,6 @@ extern BrinTuple *brinGetTupleForHeapBlock(BrinRevmap *revmap, Size *size, int mode, Snapshot snapshot); extern bool brinRevmapDesummarizeRange(Relation idxrel, BlockNumber heapBlk); -extern void brin_init_upper_pages(Relation index, BlockNumber pagesPerRange); extern BlockNumber heapBlockGetCurrentAosegStart(BlockNumber heapBlk); #endif /* BRIN_REVMAP_H */ diff --git a/src/include/access/brin_xlog.h b/src/include/access/brin_xlog.h index 7a33d6893b1..070726f427e 100644 --- a/src/include/access/brin_xlog.h +++ b/src/include/access/brin_xlog.h @@ -34,11 +34,8 @@ #define XLOG_BRIN_SAMEPAGE_UPDATE 0x30 #define XLOG_BRIN_REVMAP_EXTEND 0x40 #define XLOG_BRIN_DESUMMARIZE 0x50 -#define XLOG_BRIN_REVMAP_INIT_UPPER_BLK 0x60 -#define XLOG_BRIN_REVMAP_EXTEND_UPPER 0x70 #define XLOG_BRIN_OPMASK 0x70 - /* * When we insert the first item on a new page, we restore the entire page in * redo. @@ -58,14 +55,6 @@ typedef struct xl_brin_createidx } xl_brin_createidx; #define SizeOfBrinCreateIdx (offsetof(xl_brin_createidx, isAo) + sizeof(bool)) - -typedef struct xl_brin_createupperblk -{ - BlockNumber targetBlk; -} xl_brin_createupperblk; -#define SizeOfBrinCreateUpperBlk (offsetof(xl_brin_createupperblk, targetBlk) \ - + sizeof(BlockNumber)) - /* * This is what we need to know about a BRIN tuple insert * @@ -132,6 +121,7 @@ typedef struct xl_brin_revmap_extend */ BlockNumber targetBlk; } xl_brin_revmap_extend; + #define SizeOfBrinRevmapExtend (offsetof(xl_brin_revmap_extend, targetBlk) + \ sizeof(BlockNumber)) @@ -154,19 +144,6 @@ typedef struct xl_brin_desummarize sizeof(OffsetNumber)) -typedef struct xl_brin_revmap_extend_upper -{ - BlockNumber heapBlk; - - /* extra information needed to update the revmap */ - BlockNumber pagesPerRange; - BlockNumber revmapBlk; -} xl_brin_revmap_extend_upper; -#define SizeOfBrinRevmapExtendUpper (offsetof(xl_brin_revmap_extend_upper, pagesPerRange) + \ - sizeof(BlockNumber)) - - - extern void brin_redo(XLogReaderState *record); extern void brin_desc(StringInfo buf, XLogReaderState *record); extern const char *brin_identify(uint8 info);