harshmotw-db commented on code in PR #57378:
URL: https://github.com/apache/spark/pull/57378#discussion_r3619021105
##########
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/variant/VariantExpressionSuite.scala:
##########
Review Comment:
Oh it seems you do have a test for it.
##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/variant/variantExpressions.scala:
##########
@@ -1313,6 +1298,89 @@ object VariantArrayAppend {
}
}
+abstract class VariantArrayAppendExpressionBuilderBase(failOnError: Boolean)
+ extends ExpressionBuilder {
+ override def build(funcName: String, expressions: Seq[Expression]):
Expression = {
+ val numArgs = expressions.length
+ if (numArgs == 3) {
+ VariantArrayAppend(expressions(0), expressions(1), expressions(2),
failOnError)
+ } else {
+ throw QueryCompilationErrors.wrongNumArgsError(funcName, Seq(3), numArgs)
+ }
+ }
+}
+
+// scalastyle:off line.size.limit
+@ExpressionDescription(
+ usage = "_FUNC_(v, path, val) - Appends a value to the array in a variant at
the given JSONPath " +
+ "location. Returns the variant unchanged if a path key or index is absent.
Throws an error " +
+ "if a path segment hits a value of an incompatible type or the target is
not an array. " +
+ "Returns NULL if any argument is NULL.",
+ arguments = """
+ Arguments:
+ * v - A variant value to mutate.
+ * path - A string expression evaluating to a JSONPath identifying the
target array. A valid
+ path should start with `$` and is followed by zero or more segments
like `[123]`, `.name`,
+ `['name']`, or `["name"]`.
+ * val - Any expression castable to variant.
+ """,
+ examples = """
+ Examples:
+ > SELECT _FUNC_(parse_json('[1, 2, 3]'), '$', 4);
+ [1,2,3,4]
+ > SELECT _FUNC_(parse_json('{"a": [1, 2]}'), '$.a', 3);
+ {"a":[1,2,3]}
+ > SELECT _FUNC_(parse_json('[1]'), '$', parse_json('[2, 3]'));
Review Comment:
Do Spark arrays get cast to variant? If you haven't added a test for it, can
you do that?
Edit: All good, seems you do have a test for it:
https://github.com/apache/spark/pull/57378/changes#r3619021105
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]