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

Method BeginNullAwareProbe

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

Source from the content-addressed store, hash-verified

893}
894
895Status PartitionedHashJoinNode::BeginNullAwareProbe(bool* has_null_aware_rows) {
896 DCHECK_ENUM_EQ(probe_state_, ProbeState::PROBE_COMPLETE);
897 DCHECK(builder_->null_aware_partition() != nullptr);
898 DCHECK(null_aware_probe_partition_ != nullptr);
899 DCHECK_EQ(probe_batch_pos_, -1);
900 DCHECK_EQ(probe_batch_->num_rows(), 0);
901
902 BufferedTupleStream* probe_stream = null_aware_probe_partition_->probe_rows();
903 if (builder_->null_aware_partition()->build_rows()->num_rows() == 0) {
904 // There were no build rows. Nothing to do. Just prepare to output the null
905 // probe rows.
906 DCHECK_EQ(probe_stream->num_rows(), 0);
907 RETURN_IF_ERROR(PrepareNullAwareNullProbe());
908 *has_null_aware_rows = false;
909 return Status::OK();
910 }
911
912 RETURN_IF_ERROR(builder_->BeginNullAwareProbe());
913
914 // Initialize the probe stream for reading.
915 bool got_read_buffer;
916 RETURN_IF_ERROR(probe_stream->PrepareForRead(true, &got_read_buffer));
917 if (!got_read_buffer) {
918 return mem_tracker()->MemLimitExceeded(
919 runtime_state_, Substitute(PREPARE_FOR_READ_FAILED_ERROR_MSG, id_));
920 }
921 probe_batch_pos_ = 0;
922 *has_null_aware_rows = true;
923 return Status::OK();
924}
925
926Status PartitionedHashJoinNode::OutputNullAwareProbeRows(
927 RuntimeState* state, RowBatch* out_batch, bool* done) {

Callers

nothing calls this directly

Calls 8

OKFunction · 0.85
SubstituteFunction · 0.85
null_aware_partitionMethod · 0.80
probe_rowsMethod · 0.80
build_rowsMethod · 0.80
num_rowsMethod · 0.45
PrepareForReadMethod · 0.45
MemLimitExceededMethod · 0.45

Tested by

no test coverage detected