diff --git a/datafusion/core/tests/sqllogictests/test_files/order.slt b/datafusion/core/tests/sqllogictests/test_files/order.slt index 6c2bb3abc7d50..1aa86683e3b71 100644 --- a/datafusion/core/tests/sqllogictests/test_files/order.slt +++ b/datafusion/core/tests/sqllogictests/test_files/order.slt @@ -106,7 +106,6 @@ SELECT arrow_typeof(c1), arrow_typeof(c2), arrow_typeof(c3) FROM test LIMIT 1; ---- Int32 Int64 Boolean - query II SELECT c1, c2 FROM test ORDER BY c1 DESC, c2 ASC ---- @@ -155,6 +154,9 @@ SELECT c1, c2 FROM test ORDER BY c1 DESC, c2 ASC 0 9 0 10 +query error DataFusion error: SQL error: ParserError("Expected an SQL statement, found: #") +# eliminate duplicated sorted expr +SELECT c1, c2 FROM test ORDER BY c1, c2, c1 # sort_empty diff --git a/datafusion/optimizer/src/optimizer.rs b/datafusion/optimizer/src/optimizer.rs index 64a1750ee2e42..899086df9238a 100644 --- a/datafusion/optimizer/src/optimizer.rs +++ b/datafusion/optimizer/src/optimizer.rs @@ -21,6 +21,7 @@ use crate::common_subexpr_eliminate::CommonSubexprEliminate; use crate::decorrelate_where_exists::DecorrelateWhereExists; use crate::decorrelate_where_in::DecorrelateWhereIn; use crate::eliminate_cross_join::EliminateCrossJoin; +use crate::eliminate_duplicated_expr::EliminateDuplicatedExpr; use crate::eliminate_filter::EliminateFilter; use crate::eliminate_limit::EliminateLimit; use crate::eliminate_outer_join::EliminateOuterJoin; @@ -221,6 +222,7 @@ impl Optimizer { Arc::new(SimplifyExpressions::new()), Arc::new(MergeProjection::new()), Arc::new(RewriteDisjunctivePredicate::new()), + Arc::new(EliminateDuplicatedExpr::new()), Arc::new(EliminateFilter::new()), Arc::new(EliminateCrossJoin::new()), Arc::new(CommonSubexprEliminate::new()),