/*------------------------------------------------------------------------- * * 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 */