unconditionally_push_snap.patch

text/plain

Filename: unconditionally_push_snap.patch
Type: text/plain
Part: 0
Message: Re: Assertion failure when autovacuum drops orphan temp indexes.

Patch

Format: unified
File+
src/backend/catalog/index.c 3 8
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 9162b9f81a..74d0f3097e 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -2336,13 +2336,9 @@ index_drop(Oid indexId, bool concurrent, bool concurrent_lock_mode)
 
 	/*
 	 * Updating pg_index might involve TOAST table access, so ensure we have a
-	 * valid snapshot.  We only expect to get here without a snapshot in the
-	 * concurrent path.
+	 * valid snapshot.
 	 */
-	if (concurrent)
-		PushActiveSnapshot(GetTransactionSnapshot());
-	else
-		Assert(HaveRegisteredOrActiveSnapshot());
+	PushActiveSnapshot(GetTransactionSnapshot());
 
 	/*
 	 * fix INDEX relation, and check for expressional index
@@ -2361,8 +2357,7 @@ index_drop(Oid indexId, bool concurrent, bool concurrent_lock_mode)
 	ReleaseSysCache(tuple);
 	table_close(indexRelation, RowExclusiveLock);
 
-	if (concurrent)
-		PopActiveSnapshot();
+	PopActiveSnapshot();
 
 	/*
 	 * if it has any expression columns, we might have stored statistics about