v2-0002-undo.patch
text/x-patch
Filename: v2-0002-undo.patch
Type: text/x-patch
Part: 1
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v2-0002
Subject: undo
| File | + | − |
|---|---|---|
| contrib/amcheck/verify_gin.c | 8 | 4 |
From 1495281bb00810ed3c5c3ea20bbb3b626c73b580 Mon Sep 17 00:00:00 2001 From: Tomas Vondra <tomas@vondra.me> Date: Mon, 26 May 2025 12:24:21 +0200 Subject: [PATCH v2 2/2] undo --- contrib/amcheck/verify_gin.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/contrib/amcheck/verify_gin.c b/contrib/amcheck/verify_gin.c index 427cf1669a6..8f6a5410cb7 100644 --- a/contrib/amcheck/verify_gin.c +++ b/contrib/amcheck/verify_gin.c @@ -346,7 +346,7 @@ gin_check_posting_tree_parent_keys_consistency(Relation rel, BlockNumber posting * Check if this tuple is consistent with the downlink in the * parent. */ - if (i == maxoff && ItemPointerIsValid(&stack->parentkey) && + if (stack->parentblk != InvalidBlockNumber && i == maxoff && ItemPointerCompare(&stack->parentkey, &posting_item->key) < 0) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), @@ -359,10 +359,14 @@ gin_check_posting_tree_parent_keys_consistency(Relation rel, BlockNumber posting ptr->depth = stack->depth + 1; /* - * The rightmost parent key is always invalid item pointer. - * Its value is 'Infinity' and not explicitly stored. + * Set rightmost parent key to invalid item pointer. Its value + * is 'Infinity' and not explicitly stored. */ - ptr->parentkey = posting_item->key; + if (rightlink == InvalidBlockNumber) + ItemPointerSetInvalid(&ptr->parentkey); + else + ptr->parentkey = posting_item->key; + ptr->parentblk = stack->blkno; ptr->blkno = BlockIdGetBlockNumber(&posting_item->child_blkno); ptr->next = stack->next; -- 2.49.0