Skip to content

Commit b5763f6

Browse files
authored
chore: Upgrade to latest DataFusion revision (apache#909)
* update dependency version * update avg * update avg_decimal * update sum_decimal * variance * stddev * covariance * correlation * save progress * code compiles * clippy * remove duplicate of down_cast_any_ref function * remove duplicate of down_cast_any_ref function * machete * bump DF version again and use StatsType from DataFusion * implement groups accumulator for stddev and variance * refactor * fmt * revert group accumulator
1 parent 74097da commit b5763f6

File tree

7 files changed

+7
-26
lines changed

7 files changed

+7
-26
lines changed

Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ datafusion = { workspace = true }
3535
datafusion-common = { workspace = true }
3636
datafusion-expr = { workspace = true }
3737
datafusion-physical-expr = { workspace = true }
38-
datafusion-physical-plan = { workspace = true }
3938
chrono-tz = { workspace = true }
4039
num = { workspace = true }
4140
regex = { workspace = true }

src/cast.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,15 @@ use datafusion_expr::ColumnarValue;
5050
use datafusion_physical_expr::PhysicalExpr;
5151

5252
use chrono::{NaiveDate, NaiveDateTime, TimeZone, Timelike};
53+
use datafusion::physical_expr_common::physical_expr::down_cast_any_ref;
5354
use num::{
5455
cast::AsPrimitive, integer::div_floor, traits::CheckedNeg, CheckedSub, Integer, Num,
5556
ToPrimitive,
5657
};
5758
use regex::Regex;
5859

5960
use crate::timezone;
60-
use crate::utils::{array_with_timezone, down_cast_any_ref};
61+
use crate::utils::array_with_timezone;
6162

6263
use crate::{EvalMode, SparkError, SparkResult};
6364

src/if_expr.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,10 @@ use arrow::{
2626
record_batch::RecordBatch,
2727
};
2828
use datafusion::logical_expr::ColumnarValue;
29+
use datafusion::physical_expr_common::physical_expr::down_cast_any_ref;
2930
use datafusion_common::Result;
3031
use datafusion_physical_expr::{expressions::CaseExpr, PhysicalExpr};
3132

32-
use crate::utils::down_cast_any_ref;
33-
3433
/// IfExpr is a wrapper around CaseExpr, because `IF(a, b, c)` is semantically equivalent to
3534
/// `CASE WHEN a THEN b ELSE c END`.
3635
#[derive(Debug, Hash)]

src/regexp.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
use crate::utils::down_cast_any_ref;
1918
use crate::SparkError;
2019
use arrow::compute::take;
2120
use arrow_array::builder::BooleanBuilder;
2221
use arrow_array::types::Int32Type;
2322
use arrow_array::{Array, BooleanArray, DictionaryArray, RecordBatch, StringArray};
2423
use arrow_schema::{DataType, Schema};
24+
use datafusion::physical_expr_common::physical_expr::down_cast_any_ref;
2525
use datafusion_common::{internal_err, Result};
2626
use datafusion_expr::ColumnarValue;
2727
use datafusion_physical_expr::PhysicalExpr;

src/structs.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use arrow::record_batch::RecordBatch;
1919
use arrow_array::{Array, StructArray};
2020
use arrow_schema::{DataType, Field, Schema};
2121
use datafusion::logical_expr::ColumnarValue;
22+
use datafusion::physical_expr_common::physical_expr::down_cast_any_ref;
2223
use datafusion_common::{DataFusionError, Result as DataFusionResult, ScalarValue};
2324
use datafusion_physical_expr::PhysicalExpr;
2425
use std::{
@@ -28,8 +29,6 @@ use std::{
2829
sync::Arc,
2930
};
3031

31-
use crate::utils::down_cast_any_ref;
32-
3332
#[derive(Debug, Hash)]
3433
pub struct CreateNamedStruct {
3534
values: Vec<Arc<dyn PhysicalExpr>>,

src/temporal.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ use arrow::{
2828
};
2929
use arrow_schema::{DataType, Schema, TimeUnit::Microsecond};
3030
use datafusion::logical_expr::ColumnarValue;
31+
use datafusion::physical_expr_common::physical_expr::down_cast_any_ref;
3132
use datafusion_common::{DataFusionError, ScalarValue::Utf8};
3233
use datafusion_physical_expr::PhysicalExpr;
3334

34-
use crate::utils::{array_with_timezone, down_cast_any_ref};
35+
use crate::utils::array_with_timezone;
3536

3637
use crate::kernels::temporal::{
3738
date_trunc_array_fmt_dyn, date_trunc_dyn, timestamp_trunc_array_fmt_dyn, timestamp_trunc_dyn,

src/utils.rs

-18
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ use arrow_array::{
2020
types::{Int32Type, TimestampMicrosecondType},
2121
};
2222
use arrow_schema::{ArrowError, DataType};
23-
use std::any::Any;
2423
use std::sync::Arc;
2524

2625
use crate::timezone::Tz;
@@ -30,23 +29,6 @@ use arrow::{
3029
};
3130
use chrono::{DateTime, Offset, TimeZone};
3231

33-
use datafusion_physical_plan::PhysicalExpr;
34-
35-
/// A utility function from DataFusion. It is not exposed by DataFusion.
36-
pub fn down_cast_any_ref(any: &dyn Any) -> &dyn Any {
37-
if any.is::<Arc<dyn PhysicalExpr>>() {
38-
any.downcast_ref::<Arc<dyn PhysicalExpr>>()
39-
.unwrap()
40-
.as_any()
41-
} else if any.is::<Box<dyn PhysicalExpr>>() {
42-
any.downcast_ref::<Box<dyn PhysicalExpr>>()
43-
.unwrap()
44-
.as_any()
45-
} else {
46-
any
47-
}
48-
}
49-
5032
/// Preprocesses input arrays to add timezone information from Spark to Arrow array datatype or
5133
/// to apply timezone offset.
5234
//

0 commit comments

Comments
 (0)