PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "executor/execdebug.h"
#include "executor/execPartition.h"
#include "executor/nodeAppend.h"
#include "miscadmin.h"
Go to the source code of this file.
Data Structures | |
struct | ParallelAppendState |
Macros | |
#define | INVALID_SUBPLAN_INDEX -1 |
Functions | |
static TupleTableSlot * | ExecAppend (PlanState *pstate) |
static bool | choose_next_subplan_locally (AppendState *node) |
static bool | choose_next_subplan_for_leader (AppendState *node) |
static bool | choose_next_subplan_for_worker (AppendState *node) |
static void | mark_invalid_subplans_as_finished (AppendState *node) |
AppendState * | ExecInitAppend (Append *node, EState *estate, int eflags) |
void | ExecEndAppend (AppendState *node) |
void | ExecReScanAppend (AppendState *node) |
void | ExecAppendEstimate (AppendState *node, ParallelContext *pcxt) |
void | ExecAppendInitializeDSM (AppendState *node, ParallelContext *pcxt) |
void | ExecAppendReInitializeDSM (AppendState *node, ParallelContext *pcxt) |
void | ExecAppendInitializeWorker (AppendState *node, ParallelWorkerContext *pwcxt) |
#define INVALID_SUBPLAN_INDEX -1 |
Definition at line 80 of file nodeAppend.c.
Referenced by choose_next_subplan_for_leader(), choose_next_subplan_for_worker(), choose_next_subplan_locally(), ExecAppend(), ExecInitAppend(), and ExecReScanAppend().
|
static |
Definition at line 486 of file nodeAppend.c.
References AppendState::as_first_partial_plan, AppendState::as_nplans, AppendState::as_prune_state, AppendState::as_pstate, AppendState::as_valid_subplans, AppendState::as_whichplan, Assert, EState::es_direction, ExecFindMatchingSubPlans(), INVALID_SUBPLAN_INDEX, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), mark_invalid_subplans_as_finished(), ParallelAppendState::pa_finished, ParallelAppendState::pa_lock, ParallelAppendState::pa_next_plan, AppendState::ps, ScanDirectionIsForward, and PlanState::state.
Referenced by ExecAppendInitializeDSM().
|
static |
Definition at line 567 of file nodeAppend.c.
References AppendState::as_first_partial_plan, AppendState::as_nplans, AppendState::as_prune_state, AppendState::as_pstate, AppendState::as_valid_subplans, AppendState::as_whichplan, Assert, bms_next_member(), EState::es_direction, ExecFindMatchingSubPlans(), INVALID_SUBPLAN_INDEX, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), mark_invalid_subplans_as_finished(), ParallelAppendState::pa_finished, ParallelAppendState::pa_lock, ParallelAppendState::pa_next_plan, AppendState::ps, ScanDirectionIsForward, and PlanState::state.
Referenced by ExecAppendInitializeWorker().
|
static |
Definition at line 437 of file nodeAppend.c.
References AppendState::as_nplans, AppendState::as_prune_state, AppendState::as_valid_subplans, AppendState::as_whichplan, Assert, bms_next_member(), bms_prev_member(), EState::es_direction, ExecFindMatchingSubPlans(), INVALID_SUBPLAN_INDEX, AppendState::ps, ScanDirectionIsForward, and PlanState::state.
Referenced by ExecInitAppend().
|
static |
Definition at line 232 of file nodeAppend.c.
References AppendState::appendplans, AppendState::as_nplans, AppendState::as_whichplan, Assert, castNode, CHECK_FOR_INTERRUPTS, AppendState::choose_next_subplan, ExecClearTuple(), ExecProcNode(), INVALID_SUBPLAN_INDEX, AppendState::ps, PlanState::ps_ResultTupleSlot, and TupIsNull.
Referenced by ExecInitAppend().
void ExecAppendEstimate | ( | AppendState * | node, |
ParallelContext * | pcxt | ||
) |
Definition at line 367 of file nodeAppend.c.
References add_size(), AppendState::as_nplans, ParallelContext::estimator, offsetof, ParallelAppendState::pa_finished, AppendState::pstate_len, shm_toc_estimate_chunk, and shm_toc_estimate_keys.
Referenced by ExecParallelEstimate().
void ExecAppendInitializeDSM | ( | AppendState * | node, |
ParallelContext * | pcxt | ||
) |
Definition at line 386 of file nodeAppend.c.
References AppendState::as_pstate, AppendState::choose_next_subplan, choose_next_subplan_for_leader(), LWLockInitialize(), LWTRANCHE_PARALLEL_APPEND, ParallelAppendState::pa_lock, PlanState::plan, Plan::plan_node_id, AppendState::ps, AppendState::pstate_len, shm_toc_allocate(), shm_toc_insert(), and ParallelContext::toc.
Referenced by ExecParallelInitializeDSM().
void ExecAppendInitializeWorker | ( | AppendState * | node, |
ParallelWorkerContext * | pwcxt | ||
) |
Definition at line 423 of file nodeAppend.c.
References AppendState::as_pstate, AppendState::choose_next_subplan, choose_next_subplan_for_worker(), PlanState::plan, Plan::plan_node_id, AppendState::ps, shm_toc_lookup(), and ParallelWorkerContext::toc.
Referenced by ExecParallelInitializeWorker().
void ExecAppendReInitializeDSM | ( | AppendState * | node, |
ParallelContext * | pcxt | ||
) |
Definition at line 407 of file nodeAppend.c.
References AppendState::as_nplans, AppendState::as_pstate, ParallelAppendState::pa_finished, and ParallelAppendState::pa_next_plan.
Referenced by ExecParallelReInitializeDSM().
void ExecEndAppend | ( | AppendState * | node | ) |
Definition at line 294 of file nodeAppend.c.
References AppendState::appendplans, AppendState::as_nplans, ExecEndNode(), and i.
Referenced by ExecEndNode().
AppendState* ExecInitAppend | ( | Append * | node, |
EState * | estate, | ||
int | eflags | ||
) |
Definition at line 100 of file nodeAppend.c.
References Append::appendplans, AppendState::appendplans, AppendState::as_first_partial_plan, AppendState::as_nplans, AppendState::as_prune_state, AppendState::as_valid_subplans, AppendState::as_whichplan, Assert, bms_add_range(), bms_next_member(), bms_num_members(), AppendState::choose_next_subplan, choose_next_subplan_locally(), PartitionPruneState::do_exec_prune, PartitionPruneState::do_initial_prune, EXEC_FLAG_MARK, ExecAppend(), ExecAssignExprContext(), ExecCreatePartitionPruneState(), ExecFindInitialMatchingSubPlans(), ExecInitNode(), ExecInitResultTupleSlotTL(), PlanState::ExecProcNode, Append::first_partial_plan, i, INVALID_SUBPLAN_INDEX, list_length(), list_nth(), makeNode, palloc(), Append::part_prune_info, PlanState::plan, AppendState::ps, PlanState::ps_ProjInfo, PlanState::resultopsfixed, PlanState::resultopsset, PlanState::state, and TTSOpsVirtual.
Referenced by ExecInitNode().
void ExecReScanAppend | ( | AppendState * | node | ) |
Definition at line 314 of file nodeAppend.c.
References AppendState::appendplans, AppendState::as_nplans, AppendState::as_prune_state, AppendState::as_valid_subplans, AppendState::as_whichplan, bms_free(), bms_overlap(), PlanState::chgParam, PartitionPruneState::execparamids, ExecReScan(), i, INVALID_SUBPLAN_INDEX, AppendState::ps, and UpdateChangedParamSet().
Referenced by ExecReScan().
|
static |
Definition at line 691 of file nodeAppend.c.
References AppendState::as_nplans, AppendState::as_prune_state, AppendState::as_pstate, AppendState::as_valid_subplans, Assert, bms_is_member(), bms_num_members(), i, and ParallelAppendState::pa_finished.
Referenced by choose_next_subplan_for_leader(), and choose_next_subplan_for_worker().