remove obsolete comment in AtEOXact_Inval

Started by Steven Niu3 months ago2 messages
#1Steven Niu
niushiji@gmail.com
1 attachment(s)

Hi, Hackers,

When I read the code, I noticed there is one line of comment in function AtEOXact_Inval() which is obviously obsolete.

"This should be called as the last step in processing a transaction"

AtEOXact_Inval() is called in CommitTransaction() and AbortTransaction() and there are many other steps after function AtEOXact_Inval() is called.
Such as:
      AtCommit_Notify();
      AtEOXact_GUC(true, 1);
      AtEOXact_SPI(true);
      AtEOXact_Enum();
      AtEOXact_on_commit_actions(true);
      AtEOXact_Namespace(true, is_parallel_worker);
      AtEOXact_SMgr();
      AtEOXact_Files(true);
      AtEOXact_ComboCid();
      AtEOXact_HashTables(true);
      AtEOXact_PgStat(true, is_parallel_worker);
      AtEOXact_Snapshot(true, false);
      AtEOXact_ApplyLauncher(true);
      AtEOXact_LogicalRepWorkers(true);

So that comment is no longer true. I made a patch to remove it as attached.

Best Regards,
Steven

Attachments:

0001-PATCH-remove-obsolete-comment-in-AtEOXact_Inval.patchapplication/octet-stream; name=0001-PATCH-remove-obsolete-comment-in-AtEOXact_Inval.patchDownload
From c8c79a425b0db0407bddaafac61ab0475d442bf3 Mon Sep 17 00:00:00 2001
From: Steven Niu <niushiji@highgo.com>
Date: Mon, 27 Oct 2025 10:18:56 +0800
Subject: [PATCH] remove obsolete comment in AtEOXact_Inval

There are many other steps after function AtEOXact_Inval() is called
in processing a transaction. So the comment of function AtEOXact_Inval()
"This should be called as the last step in processing a transaction."
is obsolete and should be deleted.

Author: Steven Niu <niushiji@highgo.com>
---
 src/backend/utils/cache/inval.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index 02505c88b8e..e6a93229e6f 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -1191,9 +1191,6 @@ ProcessCommittedInvalidationMessages(SharedInvalidationMessage *msgs,
  * In any case, reset our state to empty.  We need not physically
  * free memory here, since TopTransactionContext is about to be emptied
  * anyway.
- *
- * Note:
- *		This should be called as the last step in processing a transaction.
  */
 void
 AtEOXact_Inval(bool isCommit)
-- 
2.43.0

#2Chao Li
li.evan.chao@gmail.com
In reply to: Steven Niu (#1)
Re: remove obsolete comment in AtEOXact_Inval

On Oct 27, 2025, at 10:43, Steven Niu <niushiji@gmail.com> wrote:

Hi, Hackers,

When I read the code, I noticed there is one line of comment in function AtEOXact_Inval() which is obviously obsolete.

"This should be called as the last step in processing a transaction"

Steven<0001-PATCH-remove-obsolete-comment-in-AtEOXact_Inval.patch>

+1

The comment of "void AtEOXact_Inval(bool isCommit):
```
* Note:
* This should be called as the last step in processing a transaction.
```
Was added 29 years ago.

However, looking at CommitTransaction():

```
/*
* Make catalog changes visible to all backends. This has to happen after
* relcache references are dropped (see comments for
* AtEOXact_RelationCache), but before locks are released (if anyone is
* waiting for lock on a relation we've modified, we want them to know
* about the catalog change before they start using the relation).
*/
AtEOXact_Inval(true);

AtEOXact_MultiXact(); # <=== added 21 years ago
```

it seems the newer change has made the original comment inaccurate.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/