From c9bf3f3d1da7fd55b6d7c07d7347ea3ff56dc577 Mon Sep 17 00:00:00 2001
From: Mustafa Akur <106137913+mustafasrepo@users.noreply.github.com>
Date: Thu, 30 Mar 2023 16:17:33 +0300
Subject: [PATCH] Change required input ordering physical plan API to allow any
NULLS FIRST / LAST and ASC / DESC (#5772)
* Change required input ordering to format to not absolutely require direction.
* remove unnecessary code
---
.../src/physical_optimizer/repartition.rs | 9 +-
.../physical_optimizer/sort_enforcement.rs | 32 +++--
.../physical_plan/joins/sort_merge_join.rs | 10 +-
.../joins/symmetric_hash_join.rs | 14 ++-
datafusion/core/src/physical_plan/mod.rs | 4 +-
datafusion/core/src/physical_plan/planner.rs | 29 -----
.../sorts/sort_preserving_merge.rs | 14 ++-
.../windows/bounded_window_agg_exec.rs | 21 ++--
.../core/src/physical_plan/windows/mod.rs | 102 +++++++++++++++-
.../physical_plan/windows/window_agg_exec.rs | 17 ++-
datafusion/core/tests/sql/select.rs | 7 +-
datafusion/core/tests/window_fuzz.rs | 13 +-
datafusion/physical-expr/src/lib.rs | 4 +-
datafusion/physical-expr/src/sort_expr.rs | 78 ++++++++++--
datafusion/physical-expr/src/utils.rs | 114 ++++++++++++++++--
datafusion/proto/src/physical_plan/mod.rs | 1 -
16 files changed, 356 insertions(+), 113 deletions(-)
diff --git a/datafusion/core/src/physical_optimizer/repartition.rs b/datafusion/core/src/physical_optimizer/repartition.rs
index 8557769c3171..71274d177d5f 100644
--- a/datafusion/core/src/physical_optimizer/repartition.rs
+++ b/datafusion/core/src/physical_optimizer/repartition.rs
@@ -321,6 +321,9 @@ fn init() {
mod tests {
use arrow::compute::SortOptions;
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
+ use datafusion_physical_expr::{
+ make_sort_requirements_from_exprs, PhysicalSortRequirement,
+ };
use super::*;
use crate::datasource::listing::PartitionedFile;
@@ -1131,8 +1134,10 @@ mod tests {
}
// model that it requires the output ordering of its input
- fn required_input_ordering(&self) -> Vec