mirror of
https://github.com/postgres/postgres.git
synced 2025-06-26 12:21:12 +03:00
Centralize executor-related partitioning code.
Some code is moved from partition.c, which has grown very quickly lately; splitting the executor parts out might help to keep it from getting totally out of control. Other code is moved from execMain.c. All is moved to a new file execPartition.c. get_partition_for_tuple now has a new interface that more clearly separates executor concerns from generic concerns. Amit Langote. A slight comment tweak by me. Discussion: http://postgr.es/m/1f0985f8-3b61-8bc4-4350-baa6d804cb6d@lab.ntt.co.jp
This commit is contained in:
@ -188,6 +188,8 @@ 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);
|
||||
extern void ExecWithCheckOptions(WCOKind kind, ResultRelInfo *resultRelInfo,
|
||||
TupleTableSlot *slot, EState *estate);
|
||||
extern LockTupleMode ExecUpdateLockMode(EState *estate, ResultRelInfo *relinfo);
|
||||
@ -206,18 +208,6 @@ extern void EvalPlanQualSetPlan(EPQState *epqstate,
|
||||
extern void EvalPlanQualSetTuple(EPQState *epqstate, Index rti,
|
||||
HeapTuple tuple);
|
||||
extern HeapTuple EvalPlanQualGetTuple(EPQState *epqstate, Index rti);
|
||||
extern void ExecSetupPartitionTupleRouting(Relation rel,
|
||||
Index resultRTindex,
|
||||
EState *estate,
|
||||
PartitionDispatch **pd,
|
||||
ResultRelInfo ***partitions,
|
||||
TupleConversionMap ***tup_conv_maps,
|
||||
TupleTableSlot **partition_tuple_slot,
|
||||
int *num_parted, int *num_partitions);
|
||||
extern int ExecFindPartition(ResultRelInfo *resultRelInfo,
|
||||
PartitionDispatch *pd,
|
||||
TupleTableSlot *slot,
|
||||
EState *estate);
|
||||
|
||||
#define EvalPlanQualSetSlot(epqstate, slot) ((epqstate)->origslot = (slot))
|
||||
extern void EvalPlanQualFetchRowMarks(EPQState *epqstate);
|
||||
|
Reference in New Issue
Block a user