From 8303469748a412525ad55aa9bba0de9ead3c26bf Mon Sep 17 00:00:00 2001
From: Matthias van de Meent <boekewurm+postgres@gmail.com>
Date: Thu, 30 Nov 2023 18:19:40 +0100
Subject: [PATCH v7 2/3] BRIN: Exit parallel mode when not starting parallel
 create index

---
 src/backend/access/brin/brin.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/backend/access/brin/brin.c b/src/backend/access/brin/brin.c
index 001cf04aac..251350fde2 100644
--- a/src/backend/access/brin/brin.c
+++ b/src/backend/access/brin/brin.c
@@ -2483,8 +2483,19 @@ _brin_end_parallel(BrinLeader *brinleader, BrinBuildState *state)
 	/* Shutdown worker processes */
 	WaitForParallelWorkersToFinish(brinleader->pcxt);
 
+	/*
+	 * If we didn't actually launch workers, we still have to make sure to exit
+	 * parallel mode.
+	 */
 	if (!state)
+	{
+		if (IsMVCCSnapshot(brinleader->snapshot))
+			UnregisterSnapshot(brinleader->snapshot);
+
+		DestroyParallelContext(brinleader->pcxt);
+		ExitParallelMode();
 		return;
+	}
 
 	/* copy the data into leader state (we have to wait for the workers ) */
 	state->bs_reltuples = brinshared->reltuples;
-- 
2.40.1

