This is an automated email from the ASF dual-hosted git repository.
richox pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/auron.git
The following commit(s) were added to refs/heads/master by this push:
new 1fa0489b [AURON #1538] Implement native function of reverse. (#1540)
1fa0489b is described below
commit 1fa0489bfaeaecff23deca640af2184a25b3d92a
Author: slfan1989 <[email protected]>
AuthorDate: Fri Oct 31 11:11:43 2025 +0800
[AURON #1538] Implement native function of reverse. (#1540)
Signed-off-by: slfan1989 <[email protected]>
---
.../scala/org/apache/spark/sql/auron/AuronQuerySuite.scala | 13 +++++++++++++
.../scala/org/apache/spark/sql/auron/NativeConverters.scala | 2 ++
2 files changed, 15 insertions(+)
diff --git
a/spark-extension-shims-spark/src/test/scala/org/apache/spark/sql/auron/AuronQuerySuite.scala
b/spark-extension-shims-spark/src/test/scala/org/apache/spark/sql/auron/AuronQuerySuite.scala
index a31eaf7e..26382f11 100644
---
a/spark-extension-shims-spark/src/test/scala/org/apache/spark/sql/auron/AuronQuerySuite.scala
+++
b/spark-extension-shims-spark/src/test/scala/org/apache/spark/sql/auron/AuronQuerySuite.scala
@@ -304,4 +304,17 @@ class AuronQuerySuite
checkAnswer(sql(q), Seq(expected))
}
}
+
+ test("reverse basic") {
+ Seq(
+ ("select reverse('abc')", Row("cba")),
+ ("select reverse('spark')", Row("kraps")),
+ ("select reverse('hello world')", Row("dlrow olleh")),
+ ("select reverse('12345')", Row("54321")),
+ ("select reverse('a')", Row("a")), // Edge case: single character
+ ("select reverse('')", Row("")), // Edge case: empty string
+ ("select reverse('hello' || ' world')", Row("dlrow olleh"))).foreach {
case (q, expected) =>
+ checkAnswer(sql(q), Seq(expected))
+ }
+ }
}
diff --git
a/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala
b/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala
index 0566d5f6..3fd82a98 100644
---
a/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala
+++
b/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala
@@ -846,6 +846,8 @@ object NativeConverters extends Logging {
buildExtScalarFunction("NullIf", left :: right :: Nil, e.dataType)
case Md5(_1) =>
buildScalarFunction(pb.ScalarFunction.MD5,
Seq(unpackBinaryTypeCast(_1)), StringType)
+ case Reverse(_1) =>
+ buildScalarFunction(pb.ScalarFunction.Reverse,
Seq(unpackBinaryTypeCast(_1)), StringType)
case Sha2(_1, Literal(224, _)) =>
buildExtScalarFunction("Sha224", Seq(unpackBinaryTypeCast(_1)),
StringType)
case Sha2(_1, Literal(0, _)) =>