Make heap_update() set newtup->t_tableOid correctly, for consistency with
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Dec 2008 16:26:21 +0000 (16:26 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Dec 2008 16:26:21 +0000 (16:26 +0000)
the other major heapam.c functions.  The only known consequence of this
omission is that UPDATE RETURNING failed to return the correct value for
"tableoid", as per report from KaiGai Kohei.

Back-patch to 8.2.  Arguably it's wrong all the way back; but without
evidence of visible breakage before RETURNING was added, I'll desist from
patching the older branches.

src/backend/access/heap/heapam.c

index 41eb83d33e6fe1a340823c25d6559c61889d9e1a..b099dab1e074eb20bf454b88061f36e84308d799 100644 (file)
@@ -2058,6 +2058,7 @@ l2:
        HeapTupleHeaderSetCmin(newtup->t_data, cid);
        HeapTupleHeaderSetXmax(newtup->t_data, 0);      /* zero out Datum fields */
        HeapTupleHeaderSetCmax(newtup->t_data, 0);      /* for cleanliness */
+       newtup->t_tableOid = RelationGetRelid(relation);
 
        /*
         * If the toaster needs to be activated, OR if the new tuple will not fit