From 4dc38bc64d96764c4673a73f646c26252bb7fe33 Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Thu, 26 Sep 2024 15:59:59 +0900
Subject: [PATCH] Remove invalid toast indexes from reindex processing list in
 VACUUM FULL

Blah, blah...

Backpatch-through: 12
---
 src/backend/catalog/index.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index d0dcbf318d..3a4f2e260d 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -3989,6 +3989,14 @@ reindex_relation(const ReindexStmt *stmt, Oid relid, int flags,
 					 errmsg("cannot reindex invalid index \"%s.%s\" on TOAST table, skipping",
 							get_namespace_name(indexNamespaceId),
 							get_rel_name(indexOid))));
+
+			/*
+			 * Remove this invalid toast index from the reindex pending list,
+			 * as it is skipped here due to the hard failure that would happen
+			 * in reindex_index() should we try to process it.
+			 */
+			if (flags & REINDEX_REL_SUPPRESS_INDEX_USE)
+				RemoveReindexPending(indexOid);
 			continue;
 		}
 
-- 
2.45.2

