From a06b8b7d6d53575dc4345bc8b437c4199c3f3f85 Mon Sep 17 00:00:00 2001
From: John Naylor <john.naylor@postgresql.org>
Date: Tue, 2 Sep 2025 13:25:21 +0700
Subject: [PATCH v2 5/8] Get rid of RT_USE_DELETE

We are adding more functions, so it's not sustainable to
play whack-a-mole with compiler warnings. Instead, make
TID store declare its static functions as "unused".
---
 src/backend/access/common/tidstore.c |  4 ++--
 src/include/lib/radixtree.h          | 15 ---------------
 2 files changed, 2 insertions(+), 17 deletions(-)

diff --git a/src/backend/access/common/tidstore.c b/src/backend/access/common/tidstore.c
index 5bd75fb499c..2d0d2d1b64d 100644
--- a/src/backend/access/common/tidstore.c
+++ b/src/backend/access/common/tidstore.c
@@ -88,7 +88,7 @@ typedef struct BlocktableEntry
 		(sizeof(bitmapword) * WORDS_PER_PAGE(MAX_OFFSET_IN_BITMAP))
 
 #define RT_PREFIX local_ts
-#define RT_SCOPE static
+#define RT_SCOPE static pg_attribute_unused()
 #define RT_DECLARE
 #define RT_DEFINE
 #define RT_VALUE_TYPE BlocktableEntry
@@ -100,7 +100,7 @@ typedef struct BlocktableEntry
 
 #define RT_PREFIX shared_ts
 #define RT_SHMEM
-#define RT_SCOPE static
+#define RT_SCOPE static pg_attribute_unused()
 #define RT_DECLARE
 #define RT_DEFINE
 #define RT_VALUE_TYPE BlocktableEntry
diff --git a/src/include/lib/radixtree.h b/src/include/lib/radixtree.h
index 8e8f3bd507a..21cd0156fe9 100644
--- a/src/include/lib/radixtree.h
+++ b/src/include/lib/radixtree.h
@@ -137,11 +137,6 @@
  * RT_UNLOCK		- Unlock the radix tree
  * RT_GET_HANDLE	- Return the handle of the radix tree
  *
- * Optional Interface
- * ---------
- *
- * RT_DELETE		- Delete a key-value pair. Declared/defined if RT_USE_DELETE is defined
- *
  *
  * Copyright (c) 2024-2025, PostgreSQL Global Development Group
  *
@@ -189,9 +184,7 @@
 #define RT_BEGIN_ITERATE RT_MAKE_NAME(begin_iterate)
 #define RT_ITERATE_NEXT RT_MAKE_NAME(iterate_next)
 #define RT_END_ITERATE RT_MAKE_NAME(end_iterate)
-#ifdef RT_USE_DELETE
 #define RT_DELETE RT_MAKE_NAME(delete)
-#endif
 #define RT_MEMORY_USAGE RT_MAKE_NAME(memory_usage)
 #define RT_DUMP_NODE RT_MAKE_NAME(dump_node)
 #define RT_STATS RT_MAKE_NAME(stats)
@@ -294,10 +287,7 @@ RT_SCOPE	RT_VALUE_TYPE *RT_FIND(RT_RADIX_TREE * tree, uint64 key);
 RT_SCOPE void* RT_GET_SLOT(RT_RADIX_TREE * tree, uint64 key, bool* found);
 RT_SCOPE bool RT_SET_SLOT(RT_RADIX_TREE * tree, void* slot_v, RT_VALUE_TYPE * value_p, bool found);
 RT_SCOPE bool RT_SET(RT_RADIX_TREE * tree, uint64 key, RT_VALUE_TYPE * value_p);
-
-#ifdef RT_USE_DELETE
 RT_SCOPE bool RT_DELETE(RT_RADIX_TREE * tree, uint64 key);
-#endif
 
 RT_SCOPE	RT_ITER *RT_BEGIN_ITERATE(RT_RADIX_TREE * tree);
 RT_SCOPE	RT_VALUE_TYPE *RT_ITERATE_NEXT(RT_ITER * iter, uint64 *key_p);
@@ -2274,8 +2264,6 @@ RT_END_ITERATE(RT_ITER * iter)
 
 /***************** DELETION *****************/
 
-#ifdef RT_USE_DELETE
-
 /* Delete the element at "deletepos" */
 static inline void
 RT_SHIFT_ARRAYS_AND_DELETE(uint8 *chunks, RT_PTR_ALLOC * children, int count, int deletepos)
@@ -2676,8 +2664,6 @@ RT_DELETE(RT_RADIX_TREE * tree, uint64 key)
 	return deleted;
 }
 
-#endif							/* RT_USE_DELETE */
-
 /***************** UTILITY FUNCTIONS *****************/
 
 /*
@@ -2939,7 +2925,6 @@ RT_DUMP_NODE(RT_NODE * node)
 #undef RT_VARLEN_VALUE_SIZE
 #undef RT_RUNTIME_EMBEDDABLE_VALUE
 #undef RT_SHMEM
-#undef RT_USE_DELETE
 #undef RT_DEBUG
 
 /* locally declared macros */
-- 
2.51.0

