diff options
Diffstat (limited to 'src/backend/commands')
-rw-r--r-- | src/backend/commands/analyze.c | 3 | ||||
-rw-r--r-- | src/backend/commands/constraint.c | 3 | ||||
-rw-r--r-- | src/backend/commands/copy.c | 6 | ||||
-rw-r--r-- | src/backend/commands/explain.c | 3 | ||||
-rw-r--r-- | src/backend/commands/functioncmds.c | 3 | ||||
-rw-r--r-- | src/backend/commands/subscriptioncmds.c | 2 | ||||
-rw-r--r-- | src/backend/commands/tablecmds.c | 6 | ||||
-rw-r--r-- | src/backend/commands/trigger.c | 10 |
8 files changed, 22 insertions, 14 deletions
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index 8ac868ad733..b8445dc3728 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -730,7 +730,8 @@ compute_index_stats(Relation onerel, double totalrows, estate = CreateExecutorState(); econtext = GetPerTupleExprContext(estate); /* Need a slot to hold the current heap tuple, too */ - slot = MakeSingleTupleTableSlot(RelationGetDescr(onerel)); + slot = MakeSingleTupleTableSlot(RelationGetDescr(onerel), + &TTSOpsHeapTuple); /* Arrange for econtext's scan tuple to be the tuple under test */ econtext->ecxt_scantuple = slot; diff --git a/src/backend/commands/constraint.c b/src/backend/commands/constraint.c index f472355b48f..b0b2cb2a146 100644 --- a/src/backend/commands/constraint.c +++ b/src/backend/commands/constraint.c @@ -122,7 +122,8 @@ unique_key_recheck(PG_FUNCTION_ARGS) /* * The heap tuple must be put into a slot for FormIndexDatum. */ - slot = MakeSingleTupleTableSlot(RelationGetDescr(trigdata->tg_relation)); + slot = MakeSingleTupleTableSlot(RelationGetDescr(trigdata->tg_relation), + &TTSOpsHeapTuple); ExecStoreHeapTuple(new_row, slot, false); diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index a9471c5ef6a..e62e3d8fba2 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -2488,9 +2488,11 @@ CopyFrom(CopyState cstate) ExecInitRangeTable(estate, cstate->range_table); /* Set up a tuple slot too */ - myslot = ExecInitExtraTupleSlot(estate, tupDesc); + myslot = ExecInitExtraTupleSlot(estate, tupDesc, + &TTSOpsHeapTuple); /* Triggers might need a slot as well */ - estate->es_trig_tuple_slot = ExecInitExtraTupleSlot(estate, NULL); + estate->es_trig_tuple_slot = ExecInitExtraTupleSlot(estate, NULL, + &TTSOpsHeapTuple); /* * Set up a ModifyTableState so we can let FDW(s) init themselves for diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 799a22e9d55..ab2c84ff98a 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -266,7 +266,8 @@ ExplainQuery(ParseState *pstate, ExplainStmt *stmt, const char *queryString, Assert(es->indent == 0); /* output tuples */ - tstate = begin_tup_output_tupdesc(dest, ExplainResultDesc(stmt)); + tstate = begin_tup_output_tupdesc(dest, ExplainResultDesc(stmt), + &TTSOpsVirtual); if (es->format == EXPLAIN_FORMAT_TEXT) do_text_output_multiline(tstate, es->str->data); else diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 3925fb83a54..f6e12a33532 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -2347,7 +2347,8 @@ ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver tupTypmod = HeapTupleHeaderGetTypMod(td); retdesc = lookup_rowtype_tupdesc(tupType, tupTypmod); - tstate = begin_tup_output_tupdesc(dest, retdesc); + tstate = begin_tup_output_tupdesc(dest, retdesc, + &TTSOpsHeapTuple); rettupdata.t_len = HeapTupleHeaderGetDatumLength(td); ItemPointerSetInvalid(&(rettupdata.t_self)); diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index f138e61a8d3..0efbfec4751 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -1148,7 +1148,7 @@ fetch_table_list(WalReceiverConn *wrconn, List *publications) res->err))); /* Process tables. */ - slot = MakeSingleTupleTableSlot(res->tupledesc); + slot = MakeSingleTupleTableSlot(res->tupledesc, &TTSOpsMinimalTuple); while (tuplestore_gettupleslot(res->tuplestore, true, false, slot)) { char *nspname; diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 73da6c39c22..a15e6045075 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -4736,8 +4736,8 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap, LOCKMODE lockmode) * tuples are the same, the tupDescs might not be (consider ADD COLUMN * without a default). */ - oldslot = MakeSingleTupleTableSlot(oldTupDesc); - newslot = MakeSingleTupleTableSlot(newTupDesc); + oldslot = MakeSingleTupleTableSlot(oldTupDesc, &TTSOpsHeapTuple); + newslot = MakeSingleTupleTableSlot(newTupDesc, &TTSOpsHeapTuple); /* Preallocate values/isnull arrays */ i = Max(newTupDesc->natts, oldTupDesc->natts); @@ -8527,7 +8527,7 @@ validateCheckConstraint(Relation rel, HeapTuple constrtup) econtext = GetPerTupleExprContext(estate); tupdesc = RelationGetDescr(rel); - slot = MakeSingleTupleTableSlot(tupdesc); + slot = MakeSingleTupleTableSlot(tupdesc, &TTSOpsHeapTuple); econtext->ecxt_scantuple = slot; snapshot = RegisterSnapshot(GetLatestSnapshot()); diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index d6f33ecbd04..b91ebdb3d04 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -3525,7 +3525,7 @@ TriggerEnabled(EState *estate, ResultRelInfo *relinfo, { oldContext = MemoryContextSwitchTo(estate->es_query_cxt); estate->es_trig_oldtup_slot = - ExecInitExtraTupleSlot(estate, NULL); + ExecInitExtraTupleSlot(estate, NULL, &TTSOpsHeapTuple); MemoryContextSwitchTo(oldContext); } oldslot = estate->es_trig_oldtup_slot; @@ -3539,7 +3539,7 @@ TriggerEnabled(EState *estate, ResultRelInfo *relinfo, { oldContext = MemoryContextSwitchTo(estate->es_query_cxt); estate->es_trig_newtup_slot = - ExecInitExtraTupleSlot(estate, NULL); + ExecInitExtraTupleSlot(estate, NULL, &TTSOpsHeapTuple); MemoryContextSwitchTo(oldContext); } newslot = estate->es_trig_newtup_slot; @@ -4546,8 +4546,10 @@ afterTriggerInvokeEvents(AfterTriggerEventList *events, ExecDropSingleTupleTableSlot(slot1); ExecDropSingleTupleTableSlot(slot2); } - slot1 = MakeSingleTupleTableSlot(rel->rd_att); - slot2 = MakeSingleTupleTableSlot(rel->rd_att); + slot1 = MakeSingleTupleTableSlot(rel->rd_att, + &TTSOpsMinimalTuple); + slot2 = MakeSingleTupleTableSlot(rel->rd_att, + &TTSOpsMinimalTuple); } if (trigdesc == NULL) /* should not happen */ elog(ERROR, "relation %u has no triggers", |