From 328cb864b3d5d6e88a36b269246e9b8002c4dc33 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 22 Sep 2025 14:47:48 +0200 Subject: [PATCH 10/23] C11 anonymous unions [gist] --- src/backend/access/gist/gistget.c | 28 ++++++++++++++-------------- src/include/access/gist_private.h | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c index 387d9972345..a20d724d5ca 100644 --- a/src/backend/access/gist/gistget.c +++ b/src/backend/access/gist/gistget.c @@ -353,9 +353,9 @@ gistScanPage(IndexScanDesc scan, GISTSearchItem *pageItem, * parentlsn < nsn), or if the system crashed after a page split but * before the downlink was inserted into the parent. */ - if (!XLogRecPtrIsInvalid(pageItem->data.parentlsn) && + if (!XLogRecPtrIsInvalid(pageItem->parentlsn) && (GistFollowRight(page) || - pageItem->data.parentlsn < GistPageGetNSN(page)) && + pageItem->parentlsn < GistPageGetNSN(page)) && opaque->rightlink != InvalidBlockNumber /* sanity check */ ) { /* There was a page split, follow right link to add pages */ @@ -369,7 +369,7 @@ gistScanPage(IndexScanDesc scan, GISTSearchItem *pageItem, /* Create new GISTSearchItem for the right sibling index page */ item = palloc(SizeOfGISTSearchItem(scan->numberOfOrderBys)); item->blkno = opaque->rightlink; - item->data.parentlsn = pageItem->data.parentlsn; + item->parentlsn = pageItem->parentlsn; /* Insert it into the queue using same distances as for this page */ memcpy(item->distances, myDistances, @@ -493,15 +493,15 @@ gistScanPage(IndexScanDesc scan, GISTSearchItem *pageItem, { /* Creating heap-tuple GISTSearchItem */ item->blkno = InvalidBlockNumber; - item->data.heap.heapPtr = it->t_tid; - item->data.heap.recheck = recheck; - item->data.heap.recheckDistances = recheck_distances; + item->heap.heapPtr = it->t_tid; + item->heap.recheck = recheck; + item->heap.recheckDistances = recheck_distances; /* * In an index-only scan, also fetch the data from the tuple. */ if (scan->xs_want_itup) - item->data.heap.recontup = gistFetchTuple(giststate, r, it); + item->heap.recontup = gistFetchTuple(giststate, r, it); } else { @@ -513,7 +513,7 @@ gistScanPage(IndexScanDesc scan, GISTSearchItem *pageItem, * only have a shared lock, so we need to get the LSN * atomically. */ - item->data.parentlsn = BufferGetLSNAtomic(buffer); + item->parentlsn = BufferGetLSNAtomic(buffer); } /* Insert it into the queue using new distance data */ @@ -579,16 +579,16 @@ getNextNearest(IndexScanDesc scan) if (GISTSearchItemIsHeap(*item)) { /* found a heap item at currently minimal distance */ - scan->xs_heaptid = item->data.heap.heapPtr; - scan->xs_recheck = item->data.heap.recheck; + scan->xs_heaptid = item->heap.heapPtr; + scan->xs_recheck = item->heap.recheck; index_store_float8_orderby_distances(scan, so->orderByTypes, item->distances, - item->data.heap.recheckDistances); + item->heap.recheckDistances); /* in an index-only scan, also return the reconstructed tuple. */ if (scan->xs_want_itup) - scan->xs_hitup = item->data.heap.recontup; + scan->xs_hitup = item->heap.recontup; res = true; } else @@ -635,7 +635,7 @@ gistgettuple(IndexScanDesc scan, ScanDirection dir) MemoryContextReset(so->pageDataCxt); fakeItem.blkno = GIST_ROOT_BLKNO; - memset(&fakeItem.data.parentlsn, 0, sizeof(GistNSN)); + memset(&fakeItem.parentlsn, 0, sizeof(GistNSN)); gistScanPage(scan, &fakeItem, NULL, NULL, NULL); } @@ -762,7 +762,7 @@ gistgetbitmap(IndexScanDesc scan, TIDBitmap *tbm) MemoryContextReset(so->pageDataCxt); fakeItem.blkno = GIST_ROOT_BLKNO; - memset(&fakeItem.data.parentlsn, 0, sizeof(GistNSN)); + memset(&fakeItem.parentlsn, 0, sizeof(GistNSN)); gistScanPage(scan, &fakeItem, NULL, tbm, &ntids); /* diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h index 39404ec7cdb..f7c532757a6 100644 --- a/src/include/access/gist_private.h +++ b/src/include/access/gist_private.h @@ -136,7 +136,7 @@ typedef struct GISTSearchItem GistNSN parentlsn; /* parent page's LSN, if index page */ /* we must store parentlsn to detect whether a split occurred */ GISTSearchHeapItem heap; /* heap info, if heap tuple */ - } data; + }; /* numberOfOrderBys entries */ IndexOrderByDistance distances[FLEXIBLE_ARRAY_MEMBER]; -- 2.51.0