From 77763b1dea3a7f2b447ae7fac56e563e8082056b Mon Sep 17 00:00:00 2001
From: Japin Li <japinli@hotmail.com>
Date: Wed, 23 Jul 2025 12:02:03 +0800
Subject: [PATCH] Assert required index access method callbacks

---
 src/backend/access/index/amapi.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/backend/access/index/amapi.c b/src/backend/access/index/amapi.c
index f0f4f974bce..60684c53422 100644
--- a/src/backend/access/index/amapi.c
+++ b/src/backend/access/index/amapi.c
@@ -42,6 +42,19 @@ GetIndexAmRoutine(Oid amhandler)
 		elog(ERROR, "index access method handler function %u did not return an IndexAmRoutine struct",
 			 amhandler);
 
+	/* Assert that all required callbacks are present. */
+	Assert(routine->ambuild != NULL);
+	Assert(routine->ambuildempty != NULL);
+	Assert(routine->aminsert != NULL);
+	Assert(routine->ambulkdelete != NULL);
+	Assert(routine->amvacuumcleanup != NULL);
+	Assert(routine->amcostestimate != NULL);
+	Assert(routine->amoptions != NULL);
+	Assert(routine->amvalidate != NULL);
+	Assert(routine->ambeginscan != NULL);
+	Assert(routine->amrescan != NULL);
+	Assert(routine->amendscan != NULL);
+
 	return routine;
 }
 
-- 
2.43.0

