Skip to content

Commit d23a3db

Browse files
fix: string_to_array('', delim) now returns empty array for PostgreSQL compatibility
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 332f035 commit d23a3db

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

datafusion/functions-nested/src/string.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,9 @@ where
738738
|(string, delimiter)| {
739739
match (string, delimiter) {
740740
(Some(string), Some("")) => {
741-
list_builder.values().append_value(string);
741+
if !string.is_empty() {
742+
list_builder.values().append_value(string);
743+
}
742744
list_builder.append(true);
743745
}
744746
(Some(string), Some(delimiter)) => {
@@ -770,10 +772,12 @@ where
770772
.for_each(|((string, delimiter), null_value)| {
771773
match (string, delimiter) {
772774
(Some(string), Some("")) => {
773-
if Some(string) == null_value {
774-
list_builder.values().append_null();
775-
} else {
776-
list_builder.values().append_value(string);
775+
if !string.is_empty() {
776+
if Some(string) == null_value {
777+
list_builder.values().append_null();
778+
} else {
779+
list_builder.values().append_value(string);
780+
}
777781
}
778782
list_builder.append(true);
779783
}

datafusion/sqllogictest/test_files/array.slt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8629,6 +8629,11 @@ SELECT string_to_array('', ',')
86298629
----
86308630
[]
86318631

8632+
query ?
8633+
SELECT string_to_array('', '')
8634+
----
8635+
[]
8636+
86328637
query ?
86338638
SELECT string_to_array('abc', '')
86348639
----

0 commit comments

Comments
 (0)