This is an automated email from the ASF dual-hosted git repository.
csy 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 2696f08a [AURON #1674] Fix: route UPPER to Spark_StringUpper and add
tests (#1675)
2696f08a is described below
commit 2696f08a649d043aa8626214faee351a0306ca64
Author: Thomas <[email protected]>
AuthorDate: Mon Dec 1 11:53:16 2025 +0800
[AURON #1674] Fix: route UPPER to Spark_StringUpper and add tests (#1675)
---
.../datafusion-ext-functions/src/spark_strings.rs | 2 +-
.../org.apache.auron/AuronFunctionSuite.scala | 22 ++++++++++++++++++++++
.../apache/spark/sql/auron/NativeConverters.scala | 2 +-
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/native-engine/datafusion-ext-functions/src/spark_strings.rs
b/native-engine/datafusion-ext-functions/src/spark_strings.rs
index 83f526f9..cbbff685 100644
--- a/native-engine/datafusion-ext-functions/src/spark_strings.rs
+++ b/native-engine/datafusion-ext-functions/src/spark_strings.rs
@@ -52,7 +52,7 @@ pub fn string_upper(args: &[ColumnarValue]) ->
Result<ColumnarValue> {
ColumnarValue::Scalar(ScalarValue::Utf8(Some(str))) =>
Ok(ColumnarValue::Scalar(
ScalarValue::Utf8(Some(str.to_uppercase())),
)),
- _ => df_execution_err!("string_lower only supports literal utf8"),
+ _ => df_execution_err!("string_upper only supports literal utf8"),
}
}
diff --git
a/spark-extension-shims-spark/src/test/scala/org.apache.auron/AuronFunctionSuite.scala
b/spark-extension-shims-spark/src/test/scala/org.apache.auron/AuronFunctionSuite.scala
index 21fbf1cd..2b28ed78 100644
---
a/spark-extension-shims-spark/src/test/scala/org.apache.auron/AuronFunctionSuite.scala
+++
b/spark-extension-shims-spark/src/test/scala/org.apache.auron/AuronFunctionSuite.scala
@@ -443,4 +443,26 @@ class AuronFunctionSuite extends AuronQueryTest with
BaseAuronSQLSuite {
checkSparkAnswerAndOperator(functions)
}
}
+
+ test("upper and lower functions") {
+ withSQLConf() {
+ withTable("t1") {
+ sql(s"CREATE TABLE t1(id INT, name STRING) USING parquet")
+ sql(s"""
+ |INSERT INTO t1 VALUES
+ | (1, 'fooBar'),
+ | (2, 'foo Bar foo-bar FOO-BAR foO-barR'),
+ | (3, 'straße'),
+ | (4, 'CAFÉ'),
+ | (5, '世界'),
+ | (6, '世 界'),
+ | (7, ''),
+ | (8, NULL)
+ """.stripMargin)
+
+ checkSparkAnswerAndOperator(
+ s"SELECT id, name, UPPER(name) AS up, LOWER(name) AS low FROM t1")
+ }
+ }
+ }
}
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 d322105b..4490cee1 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
@@ -866,7 +866,7 @@ object NativeConverters extends Logging {
buildExtScalarFunction("Spark_StringLower", e.children, e.dataType)
case e: Upper
if
sparkAuronConfig.getBoolean(SparkAuronConfiguration.CASE_CONVERT_FUNCTIONS_ENABLE)
=>
- buildExtScalarFunction("Spark_StringLower", e.children, e.dataType)
+ buildExtScalarFunction("Spark_StringUpper", e.children, e.dataType)
case e: StringTrim =>
buildScalarFunction(pb.ScalarFunction.Trim, e.srcStr +:
e.trimStr.toSeq, e.dataType)