Skip to content

Commit 3191591

Browse files
committed
[SPARK-45112][SQL] Use UnresolvedFunction based resolution in SQL Dataset functions
1 parent ab46dc0 commit 3191591

38 files changed

+979
-1258
lines changed

R/pkg/R/functions.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2894,6 +2894,8 @@ setMethod("from_json", signature(x = "Column", schema = "characterOrstructTypeOr
28942894
# treated as struct or element type of array in order to make it more
28952895
# R-friendly.
28962896
if (class(schema) == "Column") {
2897+
df <- createDataFrame(list(list(0)))
2898+
jschema <- collect(select(df, schema))[[1]][[1]]
28972899
jschema <- callJStatic("org.apache.spark.sql.api.r.SQLUtils",
28982900
"createArrayType",
28992901
jschema)

connector/connect/client/jvm/src/main/scala/org/apache/spark/sql/functions.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7089,7 +7089,8 @@ object functions {
70897089
* @group collection_funcs
70907090
* @since 3.4.0
70917091
*/
7092-
def sequence(start: Column, stop: Column): Column = sequence(start, stop, lit(1L))
7092+
def sequence(start: Column, stop: Column): Column =
7093+
Column.fn("sequence", start, stop)
70937094

70947095
/**
70957096
* Creates an array containing the left argument repeated the number of times given by the right

connector/connect/client/jvm/src/test/scala/org/apache/spark/sql/FunctionTestSuite.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@ class FunctionTestSuite extends ConnectFunSuite {
218218
to_json(a, Collections.emptyMap[String, String]),
219219
to_json(a, Map.empty[String, String]))
220220
testEquals("sort_array", sort_array(a), sort_array(a, asc = true))
221-
testEquals("sequence", sequence(lit(1), lit(10)), sequence(lit(1), lit(10), lit(1L)))
222221
testEquals(
223222
"from_csv",
224223
from_csv(a, lit(schema.toDDL), Collections.emptyMap[String, String]),
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Project [arrays_zip(e#0, sequence(cast(1 as bigint), cast(20 as bigint), Some(cast(1 as bigint)), Some(America/Los_Angeles)), e, 1) AS arrays_zip(e, sequence(1, 20, 1))#0]
1+
Project [arrays_zip(e#0, sequence(1, 20, None, Some(America/Los_Angeles)), e, 1) AS arrays_zip(e, sequence(1, 20))#0]
22
+- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Project [concat(cast(e#0 as array<bigint>), cast(array(1, 2) as array<bigint>), sequence(cast(33 as bigint), cast(40 as bigint), Some(cast(1 as bigint)), Some(America/Los_Angeles))) AS concat(e, array(1, 2), sequence(33, 40, 1))#0]
1+
Project [concat(e#0, array(1, 2), sequence(33, 40, None, Some(America/Los_Angeles))) AS concat(e, array(1, 2), sequence(33, 40))#0]
22
+- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Project [flatten(array(cast(e#0 as array<bigint>), sequence(cast(1 as bigint), cast(10 as bigint), Some(cast(1 as bigint)), Some(America/Los_Angeles)))) AS flatten(array(e, sequence(1, 10, 1)))#0]
1+
Project [flatten(array(e#0, sequence(1, 10, None, Some(America/Los_Angeles)))) AS flatten(array(e, sequence(1, 10)))#0]
22
+- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Project [sequence(cast(1 as bigint), cast(10 as bigint), Some(cast(1 as bigint)), Some(America/Los_Angeles)) AS sequence(1, 10, 1)#0]
1+
Project [sequence(1, 10, None, Some(America/Los_Angeles)) AS sequence(1, 10)#0]
22
+- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]

connector/connect/common/src/test/resources/query-tests/queries/function_arrays_zip.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@
2929
"literal": {
3030
"integer": 20
3131
}
32-
}, {
33-
"literal": {
34-
"long": "1"
35-
}
3632
}]
3733
}
3834
}]
Binary file not shown.

connector/connect/common/src/test/resources/query-tests/queries/function_concat.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@
4242
"literal": {
4343
"integer": 40
4444
}
45-
}, {
46-
"literal": {
47-
"long": "1"
48-
}
4945
}]
5046
}
5147
}]

0 commit comments

Comments
 (0)