Skip to content

Commit 40f0012

Browse files
committed
chore: Update tests
1 parent 2a06d44 commit 40f0012

File tree

1 file changed

+60
-17
lines changed

1 file changed

+60
-17
lines changed

datafusion/optimizer/src/analyzer/type_coercion.rs

Lines changed: 60 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1722,7 +1722,10 @@ mod test {
17221722
let empty = empty_with_type(DataType::Int32);
17231723
let agg_expr = Expr::AggregateFunction(expr::AggregateFunction::new_udf(
17241724
avg_udaf(),
1725-
vec![cast(col("a"), DataType::Float64)],
1725+
vec![cast(
1726+
col("a"),
1727+
Arc::new(Field::new("a", DataType::Float64, true)),
1728+
)],
17261729
false,
17271730
None,
17281731
vec![],
@@ -1761,8 +1764,10 @@ mod test {
17611764
#[test]
17621765
fn binary_op_date32_op_interval() -> Result<()> {
17631766
// CAST(Utf8("1998-03-18") AS Date32) + IntervalDayTime("...")
1764-
let expr = cast(lit("1998-03-18"), DataType::Date32)
1765-
+ lit(ScalarValue::new_interval_dt(123, 456));
1767+
let expr = cast(
1768+
lit("1998-03-18"),
1769+
Arc::new(Field::new("date", DataType::Date32, true)),
1770+
) + lit(ScalarValue::new_interval_dt(123, 456));
17661771
let empty = empty();
17671772
let plan = LogicalPlan::Projection(Projection::try_new(vec![expr], empty)?);
17681773

@@ -1811,8 +1816,10 @@ mod test {
18111816
let expr = col("a").between(
18121817
lit("2002-05-08"),
18131818
// (cast('2002-05-08' as date) + interval '1 months')
1814-
cast(lit("2002-05-08"), DataType::Date32)
1815-
+ lit(ScalarValue::new_interval_ym(0, 1)),
1819+
cast(
1820+
lit("2002-05-08"),
1821+
Arc::new(Field::new("date", DataType::Date32, true)),
1822+
) + lit(ScalarValue::new_interval_ym(0, 1)),
18161823
);
18171824
let empty = empty_with_type(Utf8);
18181825
let plan = LogicalPlan::Filter(Filter::try_new(expr, empty)?);
@@ -1830,8 +1837,10 @@ mod test {
18301837
fn between_infer_cheap_type() -> Result<()> {
18311838
let expr = col("a").between(
18321839
// (cast('2002-05-08' as date) + interval '1 months')
1833-
cast(lit("2002-05-08"), DataType::Date32)
1834-
+ lit(ScalarValue::new_interval_ym(0, 1)),
1840+
cast(
1841+
lit("2002-05-08"),
1842+
Arc::new(Field::new("date", DataType::Date32, true)),
1843+
) + lit(ScalarValue::new_interval_ym(0, 1)),
18351844
lit("2002-12-08"),
18361845
);
18371846
let empty = empty_with_type(Utf8);
@@ -2075,7 +2084,10 @@ mod test {
20752084
)?);
20762085
let mut rewriter = TypeCoercionRewriter { schema: &schema };
20772086
let expr = is_true(lit(12i32).gt(lit(13i64)));
2078-
let expected = is_true(cast(lit(12i32), DataType::Int64).gt(lit(13i64)));
2087+
let expected = is_true(
2088+
cast(lit(12i32), Arc::new(Field::new("a", DataType::Int64, true)))
2089+
.gt(lit(13i64)),
2090+
);
20792091
let result = expr.rewrite(&mut rewriter).data()?;
20802092
assert_eq!(expected, result);
20812093

@@ -2086,7 +2098,10 @@ mod test {
20862098
)?);
20872099
let mut rewriter = TypeCoercionRewriter { schema: &schema };
20882100
let expr = is_true(lit(12i32).eq(lit(13i64)));
2089-
let expected = is_true(cast(lit(12i32), DataType::Int64).eq(lit(13i64)));
2101+
let expected = is_true(
2102+
cast(lit(12i32), Arc::new(Field::new("a", DataType::Int64, true)))
2103+
.eq(lit(13i64)),
2104+
);
20902105
let result = expr.rewrite(&mut rewriter).data()?;
20912106
assert_eq!(expected, result);
20922107

@@ -2097,7 +2112,10 @@ mod test {
20972112
)?);
20982113
let mut rewriter = TypeCoercionRewriter { schema: &schema };
20992114
let expr = is_true(lit(12i32).lt(lit(13i64)));
2100-
let expected = is_true(cast(lit(12i32), DataType::Int64).lt(lit(13i64)));
2115+
let expected = is_true(
2116+
cast(lit(12i32), Arc::new(Field::new("a", DataType::Int64, true)))
2117+
.lt(lit(13i64)),
2118+
);
21012119
let result = expr.rewrite(&mut rewriter).data()?;
21022120
assert_eq!(expected, result);
21032121

@@ -2108,9 +2126,16 @@ mod test {
21082126
fn binary_op_date32_eq_ts() -> Result<()> {
21092127
let expr = cast(
21102128
lit("1998-03-18"),
2111-
DataType::Timestamp(TimeUnit::Nanosecond, None),
2129+
Arc::new(Field::new(
2130+
"date",
2131+
DataType::Timestamp(TimeUnit::Nanosecond, None),
2132+
true,
2133+
)),
21122134
)
2113-
.eq(cast(lit("1998-03-18"), DataType::Date32));
2135+
.eq(cast(
2136+
lit("1998-03-18"),
2137+
Arc::new(Field::new("date", DataType::Date32, true)),
2138+
));
21142139
let empty = empty();
21152140
let plan = LogicalPlan::Projection(Projection::try_new(vec![expr], empty)?);
21162141

@@ -2129,7 +2154,10 @@ mod test {
21292154
schema: &DFSchemaRef,
21302155
) -> Box<Expr> {
21312156
if &expr.get_type(schema).unwrap() != data_type {
2132-
Box::new(cast(*expr, data_type.clone()))
2157+
Box::new(cast(
2158+
*expr,
2159+
Arc::new(Field::new("casted_expr", data_type.clone(), true)),
2160+
))
21332161
} else {
21342162
expr
21352163
}
@@ -2458,7 +2486,10 @@ mod test {
24582486
let fields = Field::new("key_value", DataType::Struct(struct_fields), false);
24592487
let may_type_custom = DataType::Map(Arc::new(fields), false);
24602488

2461-
let expr = col("a").eq(cast(col("a"), may_type_custom));
2489+
let expr = col("a").eq(cast(
2490+
col("a"),
2491+
Arc::new(Field::new("a", may_type_custom, true)),
2492+
));
24622493
let empty = empty_with_type(map_type_entries);
24632494
let plan = LogicalPlan::Projection(Projection::try_new(vec![expr], empty)?);
24642495

@@ -2479,7 +2510,11 @@ mod test {
24792510
Operator::Plus,
24802511
Box::new(cast(
24812512
lit("2000-01-01T00:00:00"),
2482-
DataType::Timestamp(TimeUnit::Nanosecond, None),
2513+
Arc::new(Field::new(
2514+
"timestamp",
2515+
DataType::Timestamp(TimeUnit::Nanosecond, None),
2516+
true,
2517+
)),
24832518
)),
24842519
));
24852520
let empty = empty();
@@ -2499,12 +2534,20 @@ mod test {
24992534
let expr = Expr::BinaryExpr(BinaryExpr::new(
25002535
Box::new(cast(
25012536
lit("1998-03-18"),
2502-
DataType::Timestamp(TimeUnit::Nanosecond, None),
2537+
Arc::new(Field::new(
2538+
"timestamp",
2539+
DataType::Timestamp(TimeUnit::Nanosecond, None),
2540+
true,
2541+
)),
25032542
)),
25042543
Operator::Minus,
25052544
Box::new(cast(
25062545
lit("1998-03-18"),
2507-
DataType::Timestamp(TimeUnit::Nanosecond, None),
2546+
Arc::new(Field::new(
2547+
"timestamp",
2548+
DataType::Timestamp(TimeUnit::Nanosecond, None),
2549+
true,
2550+
)),
25082551
)),
25092552
));
25102553
let empty = empty();

0 commit comments

Comments
 (0)