From 5a3648b2cbb67507ee9867bb8e57c0b23448d21a Mon Sep 17 00:00:00 2001 From: Naisila Puka <37271756+naisila@users.noreply.github.com> Date: Tue, 7 Oct 2025 11:31:41 +0300 Subject: [PATCH] PG18: fix yet another unregistered snapshot crash (#8228) PG18 added an assertion that a snapshot is active or registered before it's used. Relevant PG commit https://github.com/postgres/postgres/commit/8076c00592e40e8dbd1fce7a98b20d4bf075e4ba Fixes #8209 --- src/backend/columnar/columnar_tableam.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/columnar/columnar_tableam.c b/src/backend/columnar/columnar_tableam.c index 2b11dd27a..1158005c8 100644 --- a/src/backend/columnar/columnar_tableam.c +++ b/src/backend/columnar/columnar_tableam.c @@ -1245,10 +1245,14 @@ LogRelationStats(Relation rel, int elevel) foreach(stripeMetadataCell, stripeList) { StripeMetadata *stripe = lfirst(stripeMetadataCell); + + Snapshot snapshot = RegisterSnapshot(GetTransactionSnapshot()); StripeSkipList *skiplist = ReadStripeSkipList(relfilelocator, stripe->id, RelationGetDescr(rel), stripe->chunkCount, - GetTransactionSnapshot()); + snapshot); + UnregisterSnapshot(snapshot); + for (uint32 column = 0; column < skiplist->columnCount; column++) { bool attrDropped = Attr(tupdesc, column)->attisdropped;