Обсуждение: 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
Вложения
> 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/