diff --git a/datafusion/core/src/physical_plan/sorts/merge.rs b/datafusion/core/src/physical_plan/sorts/merge.rs index e191c044b9040..736df7dbe81a1 100644 --- a/datafusion/core/src/physical_plan/sorts/merge.rs +++ b/datafusion/core/src/physical_plan/sorts/merge.rs @@ -15,6 +15,9 @@ // specific language governing permissions and limitations // under the License. +//! Merge that deals with an arbitrary size of streaming inputs. +//! This is an order-preserving merge. + use crate::physical_plan::metrics::BaselineMetrics; use crate::physical_plan::sorts::builder::BatchBuilder; use crate::physical_plan::sorts::cursor::Cursor; @@ -51,8 +54,9 @@ macro_rules! merge_helper { }}; } -/// Perform a streaming merge of [`SendableRecordBatchStream`] -pub(crate) fn streaming_merge( +/// Perform a streaming merge of [`SendableRecordBatchStream`] based on provided sort expressions +/// while preserving order. +pub fn streaming_merge( streams: Vec, schema: SchemaRef, expressions: &[PhysicalSortExpr], diff --git a/datafusion/core/src/physical_plan/sorts/mod.rs b/datafusion/core/src/physical_plan/sorts/mod.rs index 567de96c1cfdf..dff39db423f0a 100644 --- a/datafusion/core/src/physical_plan/sorts/mod.rs +++ b/datafusion/core/src/physical_plan/sorts/mod.rs @@ -20,7 +20,7 @@ mod builder; mod cursor; mod index; -mod merge; +pub mod merge; pub mod sort; pub mod sort_preserving_merge; mod stream;