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

Method ExecuteIntermediateMerge

be/src/runtime/sorter.cc:1593–1613  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1591}
1592
1593Status Sorter::ExecuteIntermediateMerge(Sorter::Run* merged_run) {
1594 RowBatch intermediate_merge_batch(
1595 output_row_desc_, state_->batch_size(), mem_tracker_);
1596 bool eos = false;
1597 while (!eos) {
1598 // Copy rows into the new run until done.
1599 int num_copied;
1600 RETURN_IF_CANCELLED(state_);
1601 // Clear any temporary allocations made by the merger.
1602 expr_results_pool_.Clear();
1603 RETURN_IF_ERROR(merger_->GetNext(&intermediate_merge_batch, &eos));
1604 RETURN_IF_ERROR(
1605 merged_run->AddIntermediateBatch(&intermediate_merge_batch, 0, &num_copied));
1606
1607 DCHECK_EQ(num_copied, intermediate_merge_batch.num_rows());
1608 intermediate_merge_batch.Reset();
1609 }
1610
1611 RETURN_IF_ERROR(merged_run->FinalizeInput());
1612 return Status::OK();
1613}
1614
1615bool Sorter::HasSpilledRuns() const {
1616 // All runs in 'merging_runs_' are spilled. 'sorted_runs_' can contain at most one

Callers

nothing calls this directly

Calls 8

OKFunction · 0.85
batch_sizeMethod · 0.80
AddIntermediateBatchMethod · 0.80
FinalizeInputMethod · 0.80
ClearMethod · 0.45
GetNextMethod · 0.45
num_rowsMethod · 0.45
ResetMethod · 0.45

Tested by

no test coverage detected