Skip to content

Commit 6ed0c03

Browse files
migrate AggregateExt to ExprFunctionExt
Also removed `sqlparser` dependency since it's re-exported upstream. Ref: apache/datafusion#11550
1 parent fee0b9c commit 6ed0c03

File tree

4 files changed

+20
-31
lines changed

4 files changed

+20
-31
lines changed

Cargo.lock

+5-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ parking_lot = "0.12"
5656
regex-syntax = "0.8"
5757
syn = "2.0.68"
5858
url = "2"
59-
sqlparser = "0.47.0"
6059

6160
[build-dependencies]
6261
pyo3-build-config = "0.21"

src/common/data_type.rs

+10-8
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use datafusion::arrow::array::Array;
1919
use datafusion::arrow::datatypes::{DataType, IntervalUnit, TimeUnit};
2020
use datafusion_common::{DataFusionError, ScalarValue};
21+
use datafusion_expr::sqlparser::ast::NullTreatment as DFNullTreatment;
2122
use pyo3::{exceptions::PyValueError, prelude::*};
2223

2324
use crate::errors::py_datafusion_err;
@@ -775,20 +776,21 @@ pub enum NullTreatment {
775776
RESPECT_NULLS,
776777
}
777778

778-
impl From<NullTreatment> for sqlparser::ast::NullTreatment {
779-
fn from(null_treatment: NullTreatment) -> sqlparser::ast::NullTreatment {
779+
780+
impl From<NullTreatment> for DFNullTreatment {
781+
fn from(null_treatment: NullTreatment) -> DFNullTreatment {
780782
match null_treatment {
781-
NullTreatment::IGNORE_NULLS => sqlparser::ast::NullTreatment::IgnoreNulls,
782-
NullTreatment::RESPECT_NULLS => sqlparser::ast::NullTreatment::RespectNulls,
783+
NullTreatment::IGNORE_NULLS => DFNullTreatment::IgnoreNulls,
784+
NullTreatment::RESPECT_NULLS => DFNullTreatment::RespectNulls,
783785
}
784786
}
785787
}
786788

787-
impl From<sqlparser::ast::NullTreatment> for NullTreatment {
788-
fn from(null_treatment: sqlparser::ast::NullTreatment) -> NullTreatment {
789+
impl From<DFNullTreatment> for NullTreatment {
790+
fn from(null_treatment: DFNullTreatment) -> NullTreatment {
789791
match null_treatment {
790-
sqlparser::ast::NullTreatment::IgnoreNulls => NullTreatment::IGNORE_NULLS,
791-
sqlparser::ast::NullTreatment::RespectNulls => NullTreatment::RESPECT_NULLS,
792+
DFNullTreatment::IgnoreNulls => NullTreatment::IGNORE_NULLS,
793+
DFNullTreatment::RespectNulls => NullTreatment::RESPECT_NULLS,
792794
}
793795
}
794796
}

src/functions.rs

+5-7
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
// under the License.
1717

1818
use datafusion::functions_aggregate::all_default_aggregate_functions;
19-
use datafusion_expr::ExprFunctionExt as AggregateExt;
19+
use datafusion_expr::ExprFunctionExt;
2020
use pyo3::{prelude::*, wrap_pyfunction};
2121

2222
use crate::common::data_type::NullTreatment;
@@ -30,6 +30,7 @@ use datafusion::functions;
3030
use datafusion::functions_aggregate;
3131
use datafusion_common::{Column, ScalarValue, TableReference};
3232
use datafusion_expr::expr::Alias;
33+
use datafusion_expr::sqlparser::ast::NullTreatment as DFNullTreatment;
3334
use datafusion_expr::{
3435
expr::{find_df_window_func, AggregateFunction, Sort, WindowFunction},
3536
lit, Expr, WindowFunctionDefinition,
@@ -340,9 +341,8 @@ pub fn first_value(
340341
builder = builder.filter(filter.expr);
341342
}
342343

343-
if let Some(null_treatment) = null_treatment {
344-
builder = builder.null_treatment(null_treatment.into())
345-
}
344+
// would be nice if all the options builder methods accepted Option<T> ...
345+
builder = builder.null_treatment(null_treatment.map(DFNullTreatment::from));
346346

347347
Ok(builder.build()?.into())
348348
}
@@ -371,9 +371,7 @@ pub fn last_value(
371371
builder = builder.filter(filter.expr);
372372
}
373373

374-
if let Some(null_treatment) = null_treatment {
375-
builder = builder.null_treatment(null_treatment.into())
376-
}
374+
builder = builder.null_treatment(null_treatment.map(DFNullTreatment::from));
377375

378376
Ok(builder.build()?.into())
379377
}

0 commit comments

Comments
 (0)