summaryrefslogtreecommitdiff
path: root/src/include/executor
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2018-01-05 15:18:03 -0500
committerRobert Haas <rhaas@postgresql.org>2018-01-05 15:22:33 -0500
commit19c47e7c820241e1befd975cb4411af7d43e1309 (patch)
treeaf3f82cd3f4a470f6a223d3c5bd3d336e4c35322 /src/include/executor
parent84a6f63e32dbefe3dc76cbe628fab6cbfc26141e (diff)
Factor error generation out of ExecPartitionCheck.
At present, we always raise an ERROR if the partition constraint is violated, but a pending patch for UPDATE tuple routing will consider instead moving the tuple to the correct partition. Refactor to make that simpler. Amit Khandekar, reviewed by Amit Langote, David Rowley, and me. Discussion: http://postgr.es/m/CAJ3gD9cue54GbEzfV-61nyGpijvjZgCcghvLsB0_nL8Nm8HzCA@mail.gmail.com
Diffstat (limited to 'src/include/executor')
-rw-r--r--src/include/executor/executor.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index e6569e1038b..a782fae0f83 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -187,9 +187,12 @@ extern ResultRelInfo *ExecGetTriggerResultRel(EState *estate, Oid relid);
extern void ExecCleanUpTriggerState(EState *estate);
extern bool ExecContextForcesOids(PlanState *planstate, bool *hasoids);
extern void ExecConstraints(ResultRelInfo *resultRelInfo,
- TupleTableSlot *slot, EState *estate);
-extern void ExecPartitionCheck(ResultRelInfo *resultRelInfo,
+ TupleTableSlot *slot, EState *estate,
+ bool check_partition_constraint);
+extern bool ExecPartitionCheck(ResultRelInfo *resultRelInfo,
TupleTableSlot *slot, EState *estate);
+extern void ExecPartitionCheckEmitError(ResultRelInfo *resultRelInfo,
+ TupleTableSlot *slot, EState *estate);
extern void ExecWithCheckOptions(WCOKind kind, ResultRelInfo *resultRelInfo,
TupleTableSlot *slot, EState *estate);
extern LockTupleMode ExecUpdateLockMode(EState *estate, ResultRelInfo *relinfo);