Skip to content

Commit d8c2f12

Browse files
a10yAdamGS
authored andcommitted
modified upstream DF52 schema adapter backport
Signed-off-by: Andrew Duffy <[email protected]>
1 parent 2cda863 commit d8c2f12

File tree

7 files changed

+493
-259
lines changed

7 files changed

+493
-259
lines changed

vortex-datafusion/src/convert/exprs.rs

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -312,14 +312,10 @@ mod tests {
312312

313313
use arrow_schema::DataType;
314314
use arrow_schema::Field;
315-
use arrow_schema::Fields;
316315
use arrow_schema::Schema;
317316
use arrow_schema::TimeUnit as ArrowTimeUnit;
318-
use datafusion::functions::core::getfield::GetFieldFunc;
319317
use datafusion_common::ScalarValue;
320-
use datafusion_common::config::ConfigOptions;
321318
use datafusion_expr::Operator as DFOperator;
322-
use datafusion_expr::ScalarUDF;
323319
use datafusion_physical_expr::PhysicalExpr;
324320
use datafusion_physical_plan::expressions as df_expr;
325321
use insta::assert_snapshot;
@@ -620,55 +616,4 @@ mod tests {
620616

621617
assert!(!can_be_pushed_down(&like_expr, &test_schema));
622618
}
623-
624-
#[test]
625-
fn test_expr_from_df_get_field() {
626-
let struct_col = Arc::new(df_expr::Column::new("my_struct", 0)) as Arc<dyn PhysicalExpr>;
627-
let field_name = Arc::new(df_expr::Literal::new(ScalarValue::Utf8(Some(
628-
"field1".to_string(),
629-
)))) as Arc<dyn PhysicalExpr>;
630-
let get_field_expr = ScalarFunctionExpr::new(
631-
"get_field",
632-
Arc::new(ScalarUDF::from(GetFieldFunc::new())),
633-
vec![struct_col, field_name],
634-
Arc::new(Field::new("field1", DataType::Utf8, true)),
635-
Arc::new(ConfigOptions::new()),
636-
);
637-
let result = Expression::try_from_df(&get_field_expr).unwrap();
638-
assert_snapshot!(result.display_tree().to_string(), @r"
639-
vortex.get_item(field1)
640-
└── input: vortex.get_item(my_struct)
641-
└── input: vortex.root()
642-
");
643-
}
644-
645-
#[rstest]
646-
#[case::valid_field("field1", true)]
647-
#[case::missing_field("nonexistent_field", false)]
648-
fn test_can_be_pushed_down_get_field(#[case] field_name: &str, #[case] expected: bool) {
649-
let struct_fields = Fields::from(vec![
650-
Field::new("field1", DataType::Utf8, true),
651-
Field::new("field2", DataType::Int32, true),
652-
]);
653-
let schema = Schema::new(vec![Field::new(
654-
"my_struct",
655-
DataType::Struct(struct_fields),
656-
true,
657-
)]);
658-
659-
let struct_col = Arc::new(df_expr::Column::new("my_struct", 0)) as Arc<dyn PhysicalExpr>;
660-
let field_name_lit = Arc::new(df_expr::Literal::new(ScalarValue::Utf8(Some(
661-
field_name.to_string(),
662-
)))) as Arc<dyn PhysicalExpr>;
663-
664-
let get_field_expr = Arc::new(ScalarFunctionExpr::new(
665-
"get_field",
666-
Arc::new(ScalarUDF::from(GetFieldFunc::new())),
667-
vec![struct_col, field_name_lit],
668-
Arc::new(Field::new(field_name, DataType::Utf8, true)),
669-
Arc::new(ConfigOptions::new()),
670-
)) as Arc<dyn PhysicalExpr>;
671-
672-
assert_eq!(can_be_pushed_down(&get_field_expr, &schema), expected);
673-
}
674619
}

vortex-datafusion/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use vortex::expr::stats::Precision;
1010

1111
mod convert;
1212
mod persistent;
13+
pub mod vendor;
1314

1415
pub use persistent::*;
1516

0 commit comments

Comments
 (0)