I was looking at the code in EndCommand() and noticed a comment
talking about some Asserts which didn't seem to exist in the code.
The comment also talks about LastOid which looks like the name of a
variable that's nowhere to be seen.

It looks like the Asserts did exists when the completion tag patch was
being developed [1] but they disappeared somewhere along the line and
the comment didn't get an update before 2f9661311 went in.

In the attached, I rewrote the comment to remove mention of the
Asserts. I also tried to form the comment in a way that's more
understandable about why we always write a "0" in "INSERT 0 <nrows>".

David

[1] 
https://www.postgresql.org/message-id/1c642743-8e46-4246-b4a0-c9a638b3e...@enterprisedb.com
diff --git a/src/backend/tcop/dest.c b/src/backend/tcop/dest.c
index c952cbea8b..e6934d7b66 100644
--- a/src/backend/tcop/dest.c
+++ b/src/backend/tcop/dest.c
@@ -179,12 +179,11 @@ EndCommand(const QueryCompletion *qc, CommandDest dest, 
bool force_undecorated_o
                         * We assume the tagname is plain ASCII and therefore 
requires no
                         * encoding conversion.
                         *
-                        * We no longer display LastOid, but to preserve the 
wire
-                        * protocol, we write InvalidOid where the LastOid used 
to be
-                        * written.
-                        *
-                        * All cases where LastOid was written also write 
nprocessed
-                        * count, so just Assert that rather than having an 
extra test.
+                        * In ancient versions of PostgreSQL, INSERT used to 
include the
+                        * Oid of the inserted record in the completion tag.  
We no longer
+                        * support tables with Oids, so to maintain 
compatibility in the
+                        * wire protocol, we write a "0" for InvalidOid in the 
location
+                        * where we once wrote the inserted record's Oid.
                         */
                        tag = qc->commandTag;
                        tagname = GetCommandTagName(tag);

Reply via email to