Revert: Allow table AM tuple_insert() method to return the different slot

This commit reverts c35a3fb5e0 per review by Andres Freund.

Discussion: https://postgr.es/m/20240410165236.rwyrny7ihi4ddxw4%40awork3.anarazel.de
This commit is contained in:
Alexander Korotkov 2024-04-11 15:53:26 +03:00
parent 193e6d18e5
commit 8dd0bb84da
4 changed files with 17 additions and 22 deletions

View 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, heapam_tuple_insert(Relation relation, TupleTableSlot *slot, CommandId cid,
int options, BulkInsertState bistate) int options, BulkInsertState bistate)
{ {
@ -255,8 +255,6 @@ heapam_tuple_insert(Relation relation, TupleTableSlot *slot, CommandId cid,
if (shouldFree) if (shouldFree)
pfree(tuple); pfree(tuple);
return slot;
} }
static void static void

View File

@ -21086,8 +21086,8 @@ moveSplitTableRows(Relation rel, Relation splitRel, List *partlist, List *newPar
} }
/* Write the tuple out to the new relation. */ /* Write the tuple out to the new relation. */
(void) table_tuple_insert(pc->partRel, insertslot, mycid, table_tuple_insert(pc->partRel, insertslot, mycid,
ti_options, pc->bistate); ti_options, pc->bistate);
ResetExprContext(econtext); ResetExprContext(econtext);
@ -21381,8 +21381,8 @@ moveMergedTablesRows(Relation rel, List *mergingPartitionsList,
} }
/* Write the tuple out to the new relation. */ /* Write the tuple out to the new relation. */
(void) table_tuple_insert(newPartRel, insertslot, mycid, table_tuple_insert(newPartRel, insertslot, mycid,
ti_options, bistate); ti_options, bistate);
CHECK_FOR_INTERRUPTS(); CHECK_FOR_INTERRUPTS();
} }

View File

@ -1127,9 +1127,9 @@ ExecInsert(ModifyTableContext *context,
else else
{ {
/* insert the tuple normally */ /* insert the tuple normally */
slot = table_tuple_insert(resultRelationDesc, slot, table_tuple_insert(resultRelationDesc, slot,
estate->es_output_cid, estate->es_output_cid,
0, NULL); 0, NULL);
/* insert index entries for tuple */ /* insert index entries for tuple */
if (resultRelInfo->ri_NumIndices > 0) if (resultRelInfo->ri_NumIndices > 0)

View File

@ -508,9 +508,9 @@ typedef struct TableAmRoutine
*/ */
/* see table_tuple_insert() for reference about parameters */ /* see table_tuple_insert() for reference about parameters */
TupleTableSlot *(*tuple_insert) (Relation rel, TupleTableSlot *slot, void (*tuple_insert) (Relation rel, TupleTableSlot *slot,
CommandId cid, int options, CommandId cid, int options,
struct BulkInsertStateData *bistate); struct BulkInsertStateData *bistate);
/* see table_tuple_insert_speculative() for reference about parameters */ /* see table_tuple_insert_speculative() for reference about parameters */
void (*tuple_insert_speculative) (Relation rel, 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 * behavior) is also just passed through to RelationGetBufferForTuple. If
* `bistate` is provided, table_finish_bulk_insert() needs to be called. * `bistate` is provided, table_finish_bulk_insert() needs to be called.
* *
* Returns the slot containing the inserted tuple, which may differ from the * On return the slot's tts_tid and tts_tableOid are updated to reflect the
* given slot. For instance, the source slot may be VirtualTupleTableSlot, but * insertion. But note that any toasting of fields within the slot is NOT
* the result slot may correspond to the table AM. On return the slot's * reflected in the slots contents.
* 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, table_tuple_insert(Relation rel, TupleTableSlot *slot, CommandId cid,
int options, struct BulkInsertStateData *bistate) int options, struct BulkInsertStateData *bistate)
{ {
return rel->rd_tableam->tuple_insert(rel, slot, cid, options, rel->rd_tableam->tuple_insert(rel, slot, cid, options,
bistate); bistate);
} }
/* /*