remove obsolete comment in AtEOXact_Inval
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
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/