MCPcopy Create free account
hub / github.com/apache/impala / PrepareForUnpartitionedProbe

Method PrepareForUnpartitionedProbe

be/src/exec/partitioned-hash-join-node.cc:1064–1082  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1062}
1063
1064Status PartitionedHashJoinNode::PrepareForUnpartitionedProbe() {
1065 DCHECK_ENUM_EQ(builder_->state(), HashJoinState::PROBING_SPILLED_PARTITION);
1066 DCHECK(build_hash_partitions_.hash_partitions == nullptr);
1067 DCHECK(probe_hash_partitions_.empty());
1068 DCHECK(input_partition_ != nullptr);
1069 DCHECK(!input_partition_->build_partition()->is_spilled());
1070 DCHECK(input_partition_->build_partition()->hash_tbl() != nullptr);
1071
1072 // This is a spilled partition - we need to read the probe rows. Memory was reserved
1073 // in builder_->BeginSpilledProbe() for the input stream's read buffer.
1074 RETURN_IF_ERROR(input_partition_->PrepareForRead());
1075
1076 // In this case, we did not have to partition the build again, we just built
1077 // a hash table. This means the probe does not have to be partitioned either.
1078 for (int i = 0; i < PARTITION_FANOUT; ++i) {
1079 hash_tbls_[i] = input_partition_->build_partition()->hash_tbl();
1080 }
1081 return Status::OK();
1082}
1083
1084bool PartitionedHashJoinNode::AppendProbeRowSlow(
1085 BufferedTupleStream* stream, TupleRow* row, Status* status) {

Callers

nothing calls this directly

Calls 7

OKFunction · 0.85
build_partitionMethod · 0.80
hash_tblMethod · 0.80
stateMethod · 0.45
emptyMethod · 0.45
is_spilledMethod · 0.45
PrepareForReadMethod · 0.45

Tested by

no test coverage detected