mirror of
https://github.com/postgres/postgres.git
synced 2025-06-02 00:01:40 -04:00
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:
parent
193e6d18e5
commit
8dd0bb84da
@ -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
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user