This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 48c0a2b9c2 fix: largeUtf8 don't support `is distinct from` (#5993)
48c0a2b9c2 is described below
commit 48c0a2b9c2b7a4c7156511e59a31b69bc46c6c3d
Author: jakevin <[email protected]>
AuthorDate: Sat Apr 15 00:18:43 2023 +0800
fix: largeUtf8 don't support `is distinct from` (#5993)
---
.../core/tests/sqllogictests/test_files/select.slt | 10 +++++++
.../sqllogictests/test_files/type_coercion.slt | 31 ++++++++++++++++++++++
datafusion/physical-expr/src/expressions/binary.rs | 1 +
3 files changed, 42 insertions(+)
diff --git a/datafusion/core/tests/sqllogictests/test_files/select.slt
b/datafusion/core/tests/sqllogictests/test_files/select.slt
index b0105d8de9..7d5a7717a7 100644
--- a/datafusion/core/tests/sqllogictests/test_files/select.slt
+++ b/datafusion/core/tests/sqllogictests/test_files/select.slt
@@ -255,3 +255,13 @@ query B
select column1 not ilike column2 from t;
----
false
+
+query B
+select column1 is distinct from column2 from t;
+----
+true
+
+query B
+select column1 is not distinct from column2 from t;
+----
+false
diff --git a/datafusion/core/tests/sqllogictests/test_files/type_coercion.slt
b/datafusion/core/tests/sqllogictests/test_files/type_coercion.slt
new file mode 100644
index 0000000000..f39d1caab1
--- /dev/null
+++ b/datafusion/core/tests/sqllogictests/test_files/type_coercion.slt
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+##########
+## Test type coercion
+##########
+
+# test utf8 and large utf8
+query B
+select 's' is distinct from arrow_cast('s', 'LargeUtf8');
+----
+false
+
+query B
+select 's' is not distinct from arrow_cast('s', 'LargeUtf8');
+----
+true
diff --git a/datafusion/physical-expr/src/expressions/binary.rs
b/datafusion/physical-expr/src/expressions/binary.rs
index 420abe313d..070c12eb6f 100644
--- a/datafusion/physical-expr/src/expressions/binary.rs
+++ b/datafusion/physical-expr/src/expressions/binary.rs
@@ -504,6 +504,7 @@ macro_rules! binary_array_op {
DataType::Float32 => compute_f32_op!($LEFT, $RIGHT, $OP,
Float32Array),
DataType::Float64 => compute_f64_op!($LEFT, $RIGHT, $OP,
Float64Array),
DataType::Utf8 => compute_utf8_op!($LEFT, $RIGHT, $OP,
StringArray),
+ DataType::LargeUtf8 => compute_utf8_op!($LEFT, $RIGHT, $OP,
LargeStringArray),
DataType::Timestamp(TimeUnit::Nanosecond, _) => {
compute_op!($LEFT, $RIGHT, $OP, TimestampNanosecondArray)
}