aboutsummaryrefslogtreecommitdiff
path: root/src/include/executor/nodeModifyTable.h
blob: 7e9ab3cb6b49b83f833bf2b27381eba0b78a5658 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*-------------------------------------------------------------------------
 *
 * nodeModifyTable.h
 *
 *
 * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/executor/nodeModifyTable.h
 *
 *-------------------------------------------------------------------------
 */
#ifndef NODEMODIFYTABLE_H
#define NODEMODIFYTABLE_H

#include "nodes/execnodes.h"

extern ModifyTableState *ExecInitModifyTable(ModifyTable *node, EState *estate, int eflags);
extern void ExecEndModifyTable(ModifyTableState *node);
extern void ExecReScanModifyTable(ModifyTableState *node);
extern TupleTableSlot *ExecPrepareTupleRouting(ModifyTableState *mtstate,
						EState *estate,
						struct PartitionTupleRouting *proute,
						ResultRelInfo *targetRelInfo,
						TupleTableSlot *slot);
extern TupleTableSlot *ExecDelete(ModifyTableState *mtstate,
		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *planSlot,
		   EPQState *epqstate, EState *estate, bool *tupleDeleted,
		   bool processReturning, HeapUpdateFailureData *hufdp,
		   MergeActionState *actionState, bool canSetTag,
		   bool changingPart);
extern TupleTableSlot *ExecUpdate(ModifyTableState *mtstate,
		   ItemPointer tupleid, HeapTuple oldtuple, TupleTableSlot *slot,
		   TupleTableSlot *planSlot, EPQState *epqstate, EState *estate,
		   bool *tuple_updated, HeapUpdateFailureData *hufdp,
		   MergeActionState *actionState, bool canSetTag);
extern TupleTableSlot *ExecInsert(ModifyTableState *mtstate,
		   TupleTableSlot *slot,
		   TupleTableSlot *planSlot,
		   EState *estate,
		   MergeActionState *actionState,
		   bool canSetTag);
extern void ExecCheckPlanOutput(Relation resultRel, List *targetList);

#endif							/* NODEMODIFYTABLE_H */