From 7617d78809d4ff5bde31142e0744c70024e40635 Mon Sep 17 00:00:00 2001 From: Kun Liu Date: Tue, 28 Jun 2022 00:51:56 +0800 Subject: [PATCH] Don't treat Null as UTF8(None) and change error info. (#2801) * inlist: remove check path for UTF8::(None) for NULL value * format code --- .../physical-expr/src/expressions/in_list.rs | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/datafusion/physical-expr/src/expressions/in_list.rs b/datafusion/physical-expr/src/expressions/in_list.rs index a0448a1f1e12..729d066d6639 100644 --- a/datafusion/physical-expr/src/expressions/in_list.rs +++ b/datafusion/physical-expr/src/expressions/in_list.rs @@ -111,8 +111,7 @@ macro_rules! make_contains { ColumnarValue::Scalar(s) => match s { ScalarValue::$SCALAR_VALUE(Some(v)) => Some(*v), ScalarValue::$SCALAR_VALUE(None) => None, - ScalarValue::Utf8(None) => None, - datatype => unimplemented!("Unexpected type {} for InList", datatype), + datatype => unreachable!("InList can't reach other data type {} for {}.", datatype, s), }, ColumnarValue::Array(_) => { unimplemented!("InList does not yet support nested columns.") @@ -163,9 +162,7 @@ macro_rules! make_contains_primitive { ColumnarValue::Scalar(s) => match s { ScalarValue::$SCALAR_VALUE(Some(v)) => Some(*v), ScalarValue::$SCALAR_VALUE(None) => None, - // TODO this is bug, for primitive the expr list should be cast to the same data type - ScalarValue::Utf8(None) => None, - datatype => unimplemented!("Unexpected type {} for InList", datatype), + datatype => unreachable!("InList can't reach other data type {} for {}.", datatype, s), }, ColumnarValue::Array(_) => { unimplemented!("InList does not yet support nested columns.") @@ -317,11 +314,10 @@ fn make_list_contains_decimal( .flat_map(|v| match v { ColumnarValue::Scalar(s) => match s { Decimal128(v128op, _, _) => *v128op, - _ => { - unreachable!( - "InList can't reach other data type for decimal data type." - ) - } + datatype => unreachable!( + "InList can't reach other data type {} for {}.", + datatype, s + ), }, ColumnarValue::Array(_) => { unimplemented!("InList does not yet support nested columns.") @@ -360,8 +356,8 @@ fn make_set_contains_decimal( .iter() .flat_map(|v| match v { Decimal128(v128op, _, _) => *v128op, - _ => { - unreachable!("InList can't reach other data type for decimal data type.") + datatype => { + unreachable!("InList can't reach other data type {} for {}.", datatype, v) } }) .collect::>();