Revert: Allow table AM tuple_insert() method to return the different slot
authorAlexander Korotkov <akorotkov@postgresql.org>
Thu, 11 Apr 2024 12:53:26 +0000 (15:53 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Thu, 11 Apr 2024 13:02:45 +0000 (16:02 +0300)
This commit reverts c35a3fb5e0 per review by Andres Freund.

Discussion: https://postgr.es/m/20240410165236.rwyrny7ihi4ddxw4%40awork3.anarazel.de

src/backend/access/heap/heapam_handler.c
src/backend/commands/tablecmds.c
src/backend/executor/nodeModifyTable.c
src/include/access/tableam.h

index cf41ab239ed9070957c15e2b128c35627e5fd334..c019d96a162eb072d9884ae0d0920957d49e17f6 100644 (file)
@@ -238,7 +238,7 @@ heapam_tuple_satisfies_snapshot(Relation rel, TupleTableSlot *slot,
  * ----------------------------------------------------------------------------
  */
 
-static TupleTableSlot *
+static void
 heapam_tuple_insert(Relation relation, TupleTableSlot *slot, CommandId cid,
                                        int options, BulkInsertState bistate)
 {
@@ -255,8 +255,6 @@ heapam_tuple_insert(Relation relation, TupleTableSlot *slot, CommandId cid,
 
        if (shouldFree)
                pfree(tuple);
-
-       return slot;
 }
 
 static void
index 571feea270e142a44fb48406d40c613e9928dc19..000212f24c42ee5a30be662ac06bbb930aae9a9a 100644 (file)
@@ -21086,8 +21086,8 @@ moveSplitTableRows(Relation rel, Relation splitRel, List *partlist, List *newPar
                }
 
                /* Write the tuple out to the new relation. */
-               (void) table_tuple_insert(pc->partRel, insertslot, mycid,
-                                                                 ti_options, pc->bistate);
+               table_tuple_insert(pc->partRel, insertslot, mycid,
+                                                  ti_options, pc->bistate);
 
                ResetExprContext(econtext);
 
@@ -21381,8 +21381,8 @@ moveMergedTablesRows(Relation rel, List *mergingPartitionsList,
                        }
 
                        /* Write the tuple out to the new relation. */
-                       (void) table_tuple_insert(newPartRel, insertslot, mycid,
-                                                                         ti_options, bistate);
+                       table_tuple_insert(newPartRel, insertslot, mycid,
+                                                          ti_options, bistate);
 
                        CHECK_FOR_INTERRUPTS();
                }
index c570965da090748cc66a19d018fc65865dcb49da..cee60d3659b7e8c4fddd9af37252dc1fdc633b06 100644 (file)
@@ -1127,9 +1127,9 @@ ExecInsert(ModifyTableContext *context,
                else
                {
                        /* insert the tuple normally */
-                       slot = table_tuple_insert(resultRelationDesc, slot,
-                                                                         estate->es_output_cid,
-                                                                         0, NULL);
+                       table_tuple_insert(resultRelationDesc, slot,
+                                                          estate->es_output_cid,
+                                                          0, NULL);
 
                        /* insert index entries for tuple */
                        if (resultRelInfo->ri_NumIndices > 0)
index 6ef7714d2bc654d2296e7cd86658cbafc57a871d..ac24c999453e5071c778b631203a3545e6ec2b47 100644 (file)
@@ -508,9 +508,9 @@ typedef struct TableAmRoutine
         */
 
        /* see table_tuple_insert() for reference about parameters */
-       TupleTableSlot *(*tuple_insert) (Relation rel, TupleTableSlot *slot,
-                                                                        CommandId cid, int options,
-                                                                        struct BulkInsertStateData *bistate);
+       void            (*tuple_insert) (Relation rel, TupleTableSlot *slot,
+                                                                CommandId cid, int options,
+                                                                struct BulkInsertStateData *bistate);
 
        /* see table_tuple_insert_speculative() for reference about parameters */
        void            (*tuple_insert_speculative) (Relation rel,
@@ -1374,19 +1374,16 @@ table_index_delete_tuples(Relation rel, TM_IndexDeleteOp *delstate)
  * behavior) is also just passed through to RelationGetBufferForTuple. If
  * `bistate` is provided, table_finish_bulk_insert() needs to be called.
  *
- * Returns the slot containing the inserted tuple, which may differ from the
- * given slot. For instance, the source slot may be VirtualTupleTableSlot, but
- * the result slot may correspond to the table AM. On return the slot's
- * tts_tid and tts_tableOid are updated to reflect the insertion. But note
- * that any toasting of fields within the slot is NOT reflected in the slots
- * contents.
+ * On return the slot's tts_tid and tts_tableOid are updated to reflect the
+ * insertion. But note that any toasting of fields within the slot is NOT
+ * reflected in the slots contents.
  */
-static inline TupleTableSlot *
+static inline void
 table_tuple_insert(Relation rel, TupleTableSlot *slot, CommandId cid,
                                   int options, struct BulkInsertStateData *bistate)
 {
-       return rel->rd_tableam->tuple_insert(rel, slot, cid, options,
-                                                                                bistate);
+       rel->rd_tableam->tuple_insert(rel, slot, cid, options,
+                                                                 bistate);
 }
 
 /*