mirror of
https://github.com/postgres/postgres.git
synced 2025-10-28 11:55:03 +03:00
Revert: Let table AM insertion methods control index insertion
This commit reverts b1484a3f19 per review by Andres Freund.
Discussion: https://postgr.es/m/20240410165236.rwyrny7ihi4ddxw4%40awork3.anarazel.de
This commit is contained in:
@@ -395,7 +395,6 @@ CopyMultiInsertBufferFlush(CopyMultiInsertInfo *miinfo,
|
||||
bool line_buf_valid = cstate->line_buf_valid;
|
||||
uint64 save_cur_lineno = cstate->cur_lineno;
|
||||
MemoryContext oldcontext;
|
||||
bool insertIndexes;
|
||||
|
||||
Assert(buffer->bistate != NULL);
|
||||
|
||||
@@ -415,8 +414,7 @@ CopyMultiInsertBufferFlush(CopyMultiInsertInfo *miinfo,
|
||||
nused,
|
||||
mycid,
|
||||
ti_options,
|
||||
buffer->bistate,
|
||||
&insertIndexes);
|
||||
buffer->bistate);
|
||||
MemoryContextSwitchTo(oldcontext);
|
||||
|
||||
for (i = 0; i < nused; i++)
|
||||
@@ -425,7 +423,7 @@ CopyMultiInsertBufferFlush(CopyMultiInsertInfo *miinfo,
|
||||
* If there are any indexes, update them for all the inserted
|
||||
* tuples, and run AFTER ROW INSERT triggers.
|
||||
*/
|
||||
if (insertIndexes && resultRelInfo->ri_NumIndices > 0)
|
||||
if (resultRelInfo->ri_NumIndices > 0)
|
||||
{
|
||||
List *recheckIndexes;
|
||||
|
||||
@@ -1265,14 +1263,11 @@ CopyFrom(CopyFromState cstate)
|
||||
}
|
||||
else
|
||||
{
|
||||
bool insertIndexes;
|
||||
|
||||
/* OK, store the tuple and create index entries for it */
|
||||
table_tuple_insert(resultRelInfo->ri_RelationDesc,
|
||||
myslot, mycid, ti_options, bistate,
|
||||
&insertIndexes);
|
||||
myslot, mycid, ti_options, bistate);
|
||||
|
||||
if (insertIndexes && resultRelInfo->ri_NumIndices > 0)
|
||||
if (resultRelInfo->ri_NumIndices > 0)
|
||||
recheckIndexes = ExecInsertIndexTuples(resultRelInfo,
|
||||
myslot,
|
||||
estate,
|
||||
|
||||
@@ -578,7 +578,6 @@ static bool
|
||||
intorel_receive(TupleTableSlot *slot, DestReceiver *self)
|
||||
{
|
||||
DR_intorel *myState = (DR_intorel *) self;
|
||||
bool insertIndexes;
|
||||
|
||||
/* Nothing to insert if WITH NO DATA is specified. */
|
||||
if (!myState->into->skipData)
|
||||
@@ -595,8 +594,7 @@ intorel_receive(TupleTableSlot *slot, DestReceiver *self)
|
||||
slot,
|
||||
myState->output_cid,
|
||||
myState->ti_options,
|
||||
myState->bistate,
|
||||
&insertIndexes);
|
||||
myState->bistate);
|
||||
}
|
||||
|
||||
/* We know this is a newly created relation, so there are no indexes */
|
||||
|
||||
@@ -476,7 +476,6 @@ static bool
|
||||
transientrel_receive(TupleTableSlot *slot, DestReceiver *self)
|
||||
{
|
||||
DR_transientrel *myState = (DR_transientrel *) self;
|
||||
bool insertIndexes;
|
||||
|
||||
/*
|
||||
* Note that the input slot might not be of the type of the target
|
||||
@@ -491,8 +490,7 @@ transientrel_receive(TupleTableSlot *slot, DestReceiver *self)
|
||||
slot,
|
||||
myState->output_cid,
|
||||
myState->ti_options,
|
||||
myState->bistate,
|
||||
&insertIndexes);
|
||||
myState->bistate);
|
||||
|
||||
/* We know this is a newly created relation, so there are no indexes */
|
||||
|
||||
|
||||
@@ -6391,12 +6391,8 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap, LOCKMODE lockmode)
|
||||
|
||||
/* Write the tuple out to the new relation */
|
||||
if (newrel)
|
||||
{
|
||||
bool insertIndexes;
|
||||
|
||||
table_tuple_insert(newrel, insertslot, mycid,
|
||||
ti_options, bistate, &insertIndexes);
|
||||
}
|
||||
ti_options, bistate);
|
||||
|
||||
ResetExprContext(econtext);
|
||||
|
||||
@@ -21037,7 +21033,6 @@ moveSplitTableRows(Relation rel, Relation splitRel, List *partlist, List *newPar
|
||||
while (table_scan_getnextslot(scan, ForwardScanDirection, srcslot))
|
||||
{
|
||||
bool found = false;
|
||||
bool insert_indexes;
|
||||
TupleTableSlot *insertslot;
|
||||
|
||||
/* Extract data from old tuple. */
|
||||
@@ -21090,12 +21085,9 @@ moveSplitTableRows(Relation rel, Relation splitRel, List *partlist, List *newPar
|
||||
ExecStoreVirtualTuple(insertslot);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write the tuple out to the new relation. We ignore the
|
||||
* 'insert_indexes' flag since newPartRel has no indexes anyway.
|
||||
*/
|
||||
/* Write the tuple out to the new relation. */
|
||||
(void) table_tuple_insert(pc->partRel, insertslot, mycid,
|
||||
ti_options, pc->bistate, &insert_indexes);
|
||||
ti_options, pc->bistate);
|
||||
|
||||
ResetExprContext(econtext);
|
||||
|
||||
@@ -21364,7 +21356,6 @@ moveMergedTablesRows(Relation rel, List *mergingPartitionsList,
|
||||
while (table_scan_getnextslot(scan, ForwardScanDirection, srcslot))
|
||||
{
|
||||
TupleTableSlot *insertslot;
|
||||
bool insert_indexes;
|
||||
|
||||
/* Extract data from old tuple. */
|
||||
slot_getallattrs(srcslot);
|
||||
@@ -21389,12 +21380,9 @@ moveMergedTablesRows(Relation rel, List *mergingPartitionsList,
|
||||
ExecStoreVirtualTuple(insertslot);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write the tuple out to the new relation. We ignore the
|
||||
* 'insert_indexes' flag since newPartRel has no indexes anyway.
|
||||
*/
|
||||
/* Write the tuple out to the new relation. */
|
||||
(void) table_tuple_insert(newPartRel, insertslot, mycid,
|
||||
ti_options, bistate, &insert_indexes);
|
||||
ti_options, bistate);
|
||||
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user