PostgreSQL Source Code
git master
|
#include <hashjoin.h>
Data Fields | |
int | nbuckets |
int | log2_nbuckets |
int | nbuckets_original |
int | nbuckets_optimal |
int | log2_nbuckets_optimal |
union { | |
struct HashJoinTupleData ** unshared | |
dsa_pointer_atomic * shared | |
} | buckets |
bool | keepNulls |
bool | skewEnabled |
HashSkewBucket ** | skewBucket |
int | skewBucketLen |
int | nSkewBuckets |
int * | skewBucketNums |
int | nbatch |
int | curbatch |
int | nbatch_original |
int | nbatch_outstart |
bool | growEnabled |
double | totalTuples |
double | partialTuples |
double | skewTuples |
BufFile ** | innerBatchFile |
BufFile ** | outerBatchFile |
FmgrInfo * | outer_hashfunctions |
FmgrInfo * | inner_hashfunctions |
bool * | hashStrict |
Oid * | collations |
Size | spaceUsed |
Size | spaceAllowed |
Size | spacePeak |
Size | spaceUsedSkew |
Size | spaceAllowedSkew |
MemoryContext | hashCxt |
MemoryContext | batchCxt |
MemoryContext | spillCxt |
HashMemoryChunk | chunks |
HashMemoryChunk | current_chunk |
dsa_area * | area |
ParallelHashJoinState * | parallel_state |
ParallelHashJoinBatchAccessor * | batches |
dsa_pointer | current_chunk_shared |
Definition at line 298 of file hashjoin.h.
dsa_area* HashJoinTableData::area |
Definition at line 371 of file hashjoin.h.
Referenced by ExecHashTableCreate(), ExecHashTableDetach(), ExecHashTableDetachBatch(), ExecParallelHashEnsureBatchAccessors(), ExecParallelHashFirstTuple(), ExecParallelHashIncreaseNumBatches(), ExecParallelHashIncreaseNumBuckets(), ExecParallelHashJoinSetUpBatches(), ExecParallelHashNextTuple(), ExecParallelHashPopChunkQueue(), ExecParallelHashRepartitionFirst(), ExecParallelHashRepartitionRest(), ExecParallelHashTableAlloc(), ExecParallelHashTableSetCurrentBatch(), and ExecParallelHashTupleAlloc().
MemoryContext HashJoinTableData::batchCxt |
Definition at line 363 of file hashjoin.h.
Referenced by dense_alloc(), ExecHashBuildSkewHash(), ExecHashSkewTableInsert(), ExecHashTableCreate(), and ExecHashTableReset().
ParallelHashJoinBatchAccessor* HashJoinTableData::batches |
Definition at line 373 of file hashjoin.h.
Referenced by ExecHashTableCreate(), ExecHashTableDetach(), ExecHashTableDetachBatch(), ExecParallelHashCloseBatchAccessors(), ExecParallelHashEnsureBatchAccessors(), ExecParallelHashIncreaseNumBatches(), ExecParallelHashIncreaseNumBuckets(), ExecParallelHashJoinNewBatch(), ExecParallelHashJoinOuterGetTuple(), ExecParallelHashJoinPartitionOuter(), ExecParallelHashJoinSetUpBatches(), ExecParallelHashMergeCounters(), ExecParallelHashRepartitionFirst(), ExecParallelHashRepartitionRest(), ExecParallelHashTableAlloc(), ExecParallelHashTableInsert(), ExecParallelHashTableSetCurrentBatch(), ExecParallelHashTupleAlloc(), ExecParallelHashTuplePrealloc(), ExecParallelPrepHashTableForUnmatched(), and MultiExecParallelHash().
union { ... } HashJoinTableData::buckets |
Referenced by ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashRemoveNextSkewBucket(), ExecHashTableCreate(), ExecHashTableInsert(), ExecHashTableReset(), ExecHashTableResetMatchFlags(), ExecParallelHashFirstTuple(), ExecParallelHashIncreaseNumBuckets(), ExecParallelHashRepartitionFirst(), ExecParallelHashTableInsert(), ExecParallelHashTableInsertCurrentBatch(), ExecParallelHashTableSetCurrentBatch(), ExecScanHashBucket(), and ExecScanHashTableForUnmatched().
HashMemoryChunk HashJoinTableData::chunks |
Definition at line 367 of file hashjoin.h.
Referenced by dense_alloc(), ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashTableCreate(), and ExecHashTableReset().
Oid* HashJoinTableData::collations |
Definition at line 354 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashGetHashValue(), and ExecHashTableCreate().
int HashJoinTableData::curbatch |
Definition at line 325 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashJoinImpl(), ExecHashJoinNewBatch(), ExecHashJoinOuterGetTuple(), ExecHashRemoveNextSkewBucket(), ExecHashTableCreate(), ExecHashTableDetachBatch(), ExecHashTableInsert(), ExecParallelHashJoinNewBatch(), ExecParallelHashJoinOuterGetTuple(), ExecParallelHashTableInsertCurrentBatch(), ExecParallelHashTableSetCurrentBatch(), ExecParallelHashTupleAlloc(), ExecParallelPrepHashTableForUnmatched(), and MultiExecParallelHash().
HashMemoryChunk HashJoinTableData::current_chunk |
Definition at line 370 of file hashjoin.h.
Referenced by ExecHashTableCreate(), ExecParallelHashTableSetCurrentBatch(), and ExecParallelHashTupleAlloc().
dsa_pointer HashJoinTableData::current_chunk_shared |
Definition at line 374 of file hashjoin.h.
Referenced by ExecParallelHashTableSetCurrentBatch(), and ExecParallelHashTupleAlloc().
bool HashJoinTableData::growEnabled |
Definition at line 330 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), and ExecHashTableCreate().
MemoryContext HashJoinTableData::hashCxt |
Definition at line 362 of file hashjoin.h.
Referenced by ExecHashTableCreate(), and ExecHashTableDestroy().
bool* HashJoinTableData::hashStrict |
Definition at line 353 of file hashjoin.h.
Referenced by ExecHashGetHashValue(), and ExecHashTableCreate().
FmgrInfo* HashJoinTableData::inner_hashfunctions |
Definition at line 352 of file hashjoin.h.
Referenced by ExecHashGetHashValue(), and ExecHashTableCreate().
BufFile** HashJoinTableData::innerBatchFile |
Definition at line 343 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashJoinNewBatch(), ExecHashRemoveNextSkewBucket(), ExecHashTableCreate(), ExecHashTableDestroy(), and ExecHashTableInsert().
bool HashJoinTableData::keepNulls |
Definition at line 316 of file hashjoin.h.
Referenced by ExecHashTableCreate(), MultiExecParallelHash(), and MultiExecPrivateHash().
int HashJoinTableData::log2_nbuckets |
Definition at line 301 of file hashjoin.h.
Referenced by ExecHashGetBucketAndBatch(), ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashTableCreate(), ExecParallelHashTableSetCurrentBatch(), and MultiExecParallelHash().
int HashJoinTableData::log2_nbuckets_optimal |
Definition at line 305 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashTableCreate(), and ExecHashTableInsert().
int HashJoinTableData::nbatch |
Definition at line 324 of file hashjoin.h.
Referenced by ExecHashAccumInstrumentation(), ExecHashGetBucketAndBatch(), ExecHashIncreaseNumBatches(), ExecHashJoinImpl(), ExecHashJoinNewBatch(), ExecHashTableCreate(), ExecHashTableDestroy(), ExecHashTableDetach(), ExecHashTableInsert(), ExecParallelHashCloseBatchAccessors(), ExecParallelHashEnsureBatchAccessors(), ExecParallelHashIncreaseNumBatches(), ExecParallelHashJoinNewBatch(), ExecParallelHashJoinOuterGetTuple(), ExecParallelHashJoinPartitionOuter(), ExecParallelHashJoinSetUpBatches(), ExecParallelHashMergeCounters(), ExecParallelHashRepartitionFirst(), ExecParallelHashTupleAlloc(), ExecReScanHashJoin(), and MultiExecParallelHash().
int HashJoinTableData::nbatch_original |
Definition at line 327 of file hashjoin.h.
Referenced by ExecHashAccumInstrumentation(), ExecHashJoinNewBatch(), and ExecHashTableCreate().
int HashJoinTableData::nbatch_outstart |
Definition at line 328 of file hashjoin.h.
Referenced by ExecHashJoinImpl(), ExecHashJoinNewBatch(), and ExecHashTableCreate().
int HashJoinTableData::nbuckets |
Definition at line 300 of file hashjoin.h.
Referenced by ExecHashAccumInstrumentation(), ExecHashGetBucketAndBatch(), ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashTableCreate(), ExecHashTableDetachBatch(), ExecHashTableReset(), ExecHashTableResetMatchFlags(), ExecParallelHashIncreaseNumBatches(), ExecParallelHashTableSetCurrentBatch(), ExecParallelHashTupleAlloc(), ExecParallelPrepHashTableForUnmatched(), ExecParallelScanHashTableForUnmatched(), ExecScanHashTableForUnmatched(), MultiExecParallelHash(), and MultiExecPrivateHash().
int HashJoinTableData::nbuckets_optimal |
Definition at line 304 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashTableCreate(), ExecHashTableInsert(), and MultiExecPrivateHash().
int HashJoinTableData::nbuckets_original |
Definition at line 303 of file hashjoin.h.
Referenced by ExecHashAccumInstrumentation(), and ExecHashTableCreate().
int HashJoinTableData::nSkewBuckets |
Definition at line 321 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashJoinNewBatch(), ExecHashRemoveNextSkewBucket(), ExecHashTableCreate(), ExecHashTableResetMatchFlags(), and ExecScanHashTableForUnmatched().
FmgrInfo* HashJoinTableData::outer_hashfunctions |
Definition at line 351 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashGetHashValue(), and ExecHashTableCreate().
BufFile** HashJoinTableData::outerBatchFile |
Definition at line 344 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashJoinImpl(), ExecHashJoinNewBatch(), ExecHashJoinOuterGetTuple(), ExecHashTableCreate(), and ExecHashTableDestroy().
ParallelHashJoinState* HashJoinTableData::parallel_state |
Definition at line 372 of file hashjoin.h.
Referenced by ExecHashTableCreate(), ExecHashTableDetach(), ExecHashTableDetachBatch(), ExecParallelHashEnsureBatchAccessors(), ExecParallelHashFirstTuple(), ExecParallelHashIncreaseNumBatches(), ExecParallelHashIncreaseNumBuckets(), ExecParallelHashJoinNewBatch(), ExecParallelHashJoinSetUpBatches(), ExecParallelHashMergeCounters(), ExecParallelHashNextTuple(), ExecParallelHashPopChunkQueue(), ExecParallelHashRepartitionFirst(), ExecParallelHashRepartitionRest(), ExecParallelHashTableAlloc(), ExecParallelHashTableInsert(), ExecParallelHashTableSetCurrentBatch(), ExecParallelHashTupleAlloc(), ExecParallelHashTuplePrealloc(), and MultiExecParallelHash().
double HashJoinTableData::partialTuples |
Definition at line 333 of file hashjoin.h.
Referenced by ExecHashTableCreate(), MultiExecHash(), MultiExecParallelHash(), and MultiExecPrivateHash().
dsa_pointer_atomic* HashJoinTableData::shared |
Definition at line 313 of file hashjoin.h.
Referenced by ExecParallelHashFirstTuple(), ExecParallelHashIncreaseNumBuckets(), ExecParallelHashRepartitionFirst(), ExecParallelHashTableInsert(), ExecParallelHashTableInsertCurrentBatch(), and ExecParallelHashTableSetCurrentBatch().
HashSkewBucket** HashJoinTableData::skewBucket |
Definition at line 319 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashGetSkewBucket(), ExecHashJoinNewBatch(), ExecHashRemoveNextSkewBucket(), ExecHashSkewTableInsert(), ExecHashTableCreate(), ExecHashTableResetMatchFlags(), ExecScanHashBucket(), and ExecScanHashTableForUnmatched().
int HashJoinTableData::skewBucketLen |
Definition at line 320 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashGetSkewBucket(), and ExecHashTableCreate().
int* HashJoinTableData::skewBucketNums |
Definition at line 322 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashJoinNewBatch(), ExecHashRemoveNextSkewBucket(), ExecHashTableCreate(), ExecHashTableResetMatchFlags(), and ExecScanHashTableForUnmatched().
bool HashJoinTableData::skewEnabled |
Definition at line 318 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashGetSkewBucket(), ExecHashJoinNewBatch(), ExecHashRemoveNextSkewBucket(), and ExecHashTableCreate().
double HashJoinTableData::skewTuples |
Definition at line 334 of file hashjoin.h.
Referenced by ExecHashTableCreate(), ExecHashTableInsert(), and MultiExecPrivateHash().
Size HashJoinTableData::spaceAllowed |
Definition at line 357 of file hashjoin.h.
Referenced by ExecHashSkewTableInsert(), ExecHashTableCreate(), and ExecHashTableInsert().
Size HashJoinTableData::spaceAllowedSkew |
Definition at line 360 of file hashjoin.h.
Referenced by ExecHashSkewTableInsert(), and ExecHashTableCreate().
Size HashJoinTableData::spacePeak |
Definition at line 358 of file hashjoin.h.
Referenced by ExecHashAccumInstrumentation(), ExecHashBuildSkewHash(), ExecHashSkewTableInsert(), ExecHashTableCreate(), ExecHashTableDetachBatch(), ExecHashTableInsert(), ExecParallelPrepHashTableForUnmatched(), and MultiExecPrivateHash().
Size HashJoinTableData::spaceUsed |
Definition at line 356 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashIncreaseNumBatches(), ExecHashRemoveNextSkewBucket(), ExecHashSkewTableInsert(), ExecHashTableCreate(), ExecHashTableInsert(), ExecHashTableReset(), and MultiExecPrivateHash().
Size HashJoinTableData::spaceUsedSkew |
Definition at line 359 of file hashjoin.h.
Referenced by ExecHashBuildSkewHash(), ExecHashJoinNewBatch(), ExecHashRemoveNextSkewBucket(), ExecHashSkewTableInsert(), and ExecHashTableCreate().
MemoryContext HashJoinTableData::spillCxt |
Definition at line 364 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashJoinSaveTuple(), ExecHashTableCreate(), ExecParallelHashEnsureBatchAccessors(), and ExecParallelHashJoinSetUpBatches().
double HashJoinTableData::totalTuples |
Definition at line 332 of file hashjoin.h.
Referenced by ExecHashJoinImpl(), ExecHashTableCreate(), ExecHashTableInsert(), MultiExecParallelHash(), and MultiExecPrivateHash().
struct HashJoinTupleData** HashJoinTableData::unshared |
Definition at line 311 of file hashjoin.h.
Referenced by ExecHashIncreaseNumBatches(), ExecHashIncreaseNumBuckets(), ExecHashRemoveNextSkewBucket(), ExecHashTableCreate(), ExecHashTableInsert(), ExecHashTableReset(), ExecHashTableResetMatchFlags(), ExecScanHashBucket(), and ExecScanHashTableForUnmatched().