Hi, When I am reading the code, I first thought I can do something in HeapTupleheaderSetXminCommitted, then I realized we have SetHintBits. After some research, I find HeapTupleHeaderSetXminCommitted is never used and it looks not safe to use after comparing with SetHintBits. So to avoid future confusion or misuse, I'd suggest to remove it. I think HeapTupleHeaderSetXminInvalid should be the same. So here is the patch.
commit ed905d64c6b81a78627f895918d4ac723d46865c (HEAD -> heap_set_bits) Author: Andy Fan <zhihuifan1...@163.com> Date: Wed Jun 25 07:35:32 2025 +0000 Remove HeapTupleheaderSetXminCommitted/Invalid functions They are neither be used nor be safe to be used, User should use SetHintBits instead. What do you think? -- Best Regards Andy Fan
>From 343c867aff8838af4906c7a3084b33efb850f351 Mon Sep 17 00:00:00 2001 From: Andy Fan <zhihuifan1...@163.com> Date: Wed, 25 Jun 2025 07:35:32 +0000 Subject: [PATCH v1 1/1] Remove HeapTupleheaderSetXminCommitted/Invalid functions They are neither be used nor be safe to be used, User should use SetHintBits instead. --- src/include/access/htup_details.h | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/include/access/htup_details.h b/src/include/access/htup_details.h index aa957cf3b01..bc6094b001f 100644 --- a/src/include/access/htup_details.h +++ b/src/include/access/htup_details.h @@ -357,20 +357,6 @@ HeapTupleHeaderXminFrozen(const HeapTupleHeaderData *tup) return (tup->t_infomask & HEAP_XMIN_FROZEN) == HEAP_XMIN_FROZEN; } -static inline void -HeapTupleHeaderSetXminCommitted(HeapTupleHeaderData *tup) -{ - Assert(!HeapTupleHeaderXminInvalid(tup)); - tup->t_infomask |= HEAP_XMIN_COMMITTED; -} - -static inline void -HeapTupleHeaderSetXminInvalid(HeapTupleHeaderData *tup) -{ - Assert(!HeapTupleHeaderXminCommitted(tup)); - tup->t_infomask |= HEAP_XMIN_INVALID; -} - static inline void HeapTupleHeaderSetXminFrozen(HeapTupleHeaderData *tup) { -- 2.45.1