PostgreSQL Source Code git master
|
Go to the source code of this file.
Functions | |
HashJoinState * | ExecInitHashJoin (HashJoin *node, EState *estate, int eflags) |
void | ExecEndHashJoin (HashJoinState *node) |
void | ExecReScanHashJoin (HashJoinState *node) |
void | ExecShutdownHashJoin (HashJoinState *node) |
void | ExecHashJoinEstimate (HashJoinState *state, ParallelContext *pcxt) |
void | ExecHashJoinInitializeDSM (HashJoinState *state, ParallelContext *pcxt) |
void | ExecHashJoinReInitializeDSM (HashJoinState *state, ParallelContext *pcxt) |
void | ExecHashJoinInitializeWorker (HashJoinState *state, ParallelWorkerContext *pwcxt) |
void | ExecHashJoinSaveTuple (MinimalTuple tuple, uint32 hashvalue, BufFile **fileptr, HashJoinTable hashtable) |
void ExecEndHashJoin | ( | HashJoinState * | node | ) |
Definition at line 948 of file nodeHashjoin.c.
References ExecEndNode(), ExecHashTableDestroy(), HashJoinState::hj_HashTable, innerPlanState, and outerPlanState.
Referenced by ExecEndNode().
void ExecHashJoinEstimate | ( | HashJoinState * | state, |
ParallelContext * | pcxt | ||
) |
Definition at line 1649 of file nodeHashjoin.c.
References ParallelContext::estimator, shm_toc_estimate_chunk, and shm_toc_estimate_keys.
Referenced by ExecParallelEstimate().
void ExecHashJoinInitializeDSM | ( | HashJoinState * | state, |
ParallelContext * | pcxt | ||
) |
Definition at line 1656 of file nodeHashjoin.c.
References BarrierInit(), ParallelHashJoinState::batches, ParallelHashJoinState::build_barrier, ParallelHashJoinState::chunk_work_queue, ParallelHashJoinState::distributor, ExecParallelHashJoin(), ExecSetExecProcNode(), ParallelHashJoinState::fileset, ParallelHashJoinState::grow_batches_barrier, ParallelHashJoinState::grow_buckets_barrier, ParallelHashJoinState::growth, innerPlanState, InvalidDsaPointer, ParallelHashJoinState::lock, LWLockInitialize(), LWTRANCHE_PARALLEL_HASH_JOIN, ParallelHashJoinState::nbatch, ParallelHashJoinState::nbuckets, ParallelHashJoinState::nparticipants, ParallelContext::nworkers, ParallelHashJoinState::old_batches, HashState::parallel_state, pg_atomic_init_u32(), PHJ_GROWTH_OK, ParallelContext::seg, SharedFileSetInit(), shm_toc_allocate(), shm_toc_insert(), ParallelHashJoinState::space_allowed, ParallelContext::toc, and ParallelHashJoinState::total_tuples.
Referenced by ExecParallelInitializeDSM().
void ExecHashJoinInitializeWorker | ( | HashJoinState * | state, |
ParallelWorkerContext * | pwcxt | ||
) |
Definition at line 1752 of file nodeHashjoin.c.
References ExecParallelHashJoin(), ExecSetExecProcNode(), ParallelHashJoinState::fileset, innerPlanState, HashState::parallel_state, ParallelWorkerContext::seg, SharedFileSetAttach(), shm_toc_lookup(), and ParallelWorkerContext::toc.
Referenced by ExecParallelInitializeWorker().
void ExecHashJoinReInitializeDSM | ( | HashJoinState * | state, |
ParallelContext * | pcxt | ||
) |
Definition at line 1714 of file nodeHashjoin.c.
References BarrierInit(), ParallelHashJoinState::build_barrier, ExecHashTableDetach(), ExecHashTableDetachBatch(), ParallelHashJoinState::fileset, ParallelContext::seg, SharedFileSetDeleteAll(), shm_toc_lookup(), and ParallelContext::toc.
Referenced by ExecParallelReInitializeDSM().
void ExecHashJoinSaveTuple | ( | MinimalTuple | tuple, |
uint32 | hashvalue, | ||
BufFile ** | fileptr, | ||
HashJoinTable | hashtable | ||
) |
Definition at line 1414 of file nodeHashjoin.c.
References BufFileCreateTemp(), BufFileWrite(), MemoryContextSwitchTo(), HashJoinTableData::spillCxt, and MinimalTupleData::t_len.
Referenced by ExecHashIncreaseNumBatches(), ExecHashJoinImpl(), ExecHashRemoveNextSkewBucket(), and ExecHashTableInsert().
HashJoinState * ExecInitHashJoin | ( | HashJoin * | node, |
EState * | estate, | ||
int | eflags | ||
) |
Definition at line 716 of file nodeHashjoin.c.
References Assert, elog, ERROR, EXEC_FLAG_BACKWARD, EXEC_FLAG_MARK, ExecAssignExprContext(), ExecAssignProjectionInfo(), ExecBuildHash32Expr(), ExecGetResultSlotOps(), ExecGetResultType(), ExecHashJoin(), ExecInitExtraTupleSlot(), ExecInitNode(), ExecInitNullTupleSlot(), ExecInitQual(), ExecInitResultTupleSlotTL(), PlanState::ExecProcNode, fmgr_info(), foreach_current_index, get_op_hash_functions(), hash(), HashState::hash_expr, HashJoinState::hashclauses, HashJoin::hashclauses, HashJoin::hashcollations, HashJoin::hashkeys, HashJoin::hashoperators, HJ_BUILD_HASHTABLE, HashJoinState::hj_CurBucketNo, HashJoinState::hj_CurHashValue, HashJoinState::hj_CurSkewBucketNo, HashJoinState::hj_CurTuple, HJ_FILL_INNER, HJ_FILL_OUTER, HashJoinState::hj_FirstOuterTupleSlot, HashJoinState::hj_HashTable, HashJoinState::hj_HashTupleSlot, HashJoinState::hj_JoinState, HashJoinState::hj_MatchedOuter, HashJoinState::hj_NullInnerTupleSlot, HashJoinState::hj_NullOuterTupleSlot, HashJoinState::hj_OuterHash, HashJoinState::hj_OuterNotEmpty, HashJoinState::hj_OuterTupleSlot, i, Join::inner_unique, innerPlan, innerPlanState, INVALID_SKEW_BUCKET_NO, HashJoin::join, JOIN_ANTI, JOIN_FULL, JOIN_INNER, JOIN_LEFT, JOIN_RIGHT, JOIN_RIGHT_ANTI, JOIN_RIGHT_SEMI, JOIN_SEMI, JoinState::joinqual, Join::joinqual, JoinState::jointype, Join::jointype, HashJoinState::js, lfirst_oid, linitial_oid, list_length(), makeNode, OidIsValid, op_strict(), outerPlan, outerPlanState, palloc0(), palloc_array, pfree(), PlanState::plan, JoinState::ps, HashState::ps, PlanState::ps_ResultTupleDesc, PlanState::ps_ResultTupleSlot, PlanState::qual, PlanState::resultops, JoinState::single_match, HashState::skew_collation, HashState::skew_hashfunction, PlanState::state, and TTSOpsVirtual.
Referenced by ExecInitNode().
void ExecReScanHashJoin | ( | HashJoinState * | node | ) |
Definition at line 1494 of file nodeHashjoin.c.
References Assert, castNode, ExecHashAccumInstrumentation(), ExecHashTableDestroy(), ExecHashTableResetMatchFlags(), ExecReScan(), HashState::hashtable, HashState::hinstrument, HJ_BUILD_HASHTABLE, HashJoinState::hj_CurBucketNo, HashJoinState::hj_CurHashValue, HashJoinState::hj_CurSkewBucketNo, HashJoinState::hj_CurTuple, HJ_FILL_INNER, HashJoinState::hj_FirstOuterTupleSlot, HashJoinState::hj_HashTable, HashJoinState::hj_JoinState, HashJoinState::hj_MatchedOuter, HJ_NEED_NEW_OUTER, HashJoinState::hj_OuterNotEmpty, innerPlan, innerPlanState, PlanState::instrument, INVALID_SKEW_BUCKET_NO, JOIN_RIGHT_SEMI, JoinState::jointype, HashJoinState::js, HashJoinTableData::nbatch, outerPlan, outerPlanState, palloc0(), and HashState::ps.
Referenced by ExecReScan().
void ExecShutdownHashJoin | ( | HashJoinState * | node | ) |
Definition at line 1583 of file nodeHashjoin.c.
References ExecHashTableDetach(), ExecHashTableDetachBatch(), and HashJoinState::hj_HashTable.
Referenced by ExecShutdownNode_walker().