diff --git a/backends-velox/src/test/scala/org/apache/gluten/functions/MathFunctionsValidateSuite.scala b/backends-velox/src/test/scala/org/apache/gluten/functions/MathFunctionsValidateSuite.scala index c41804f10f2..248dad0df85 100644 --- a/backends-velox/src/test/scala/org/apache/gluten/functions/MathFunctionsValidateSuite.scala +++ b/backends-velox/src/test/scala/org/apache/gluten/functions/MathFunctionsValidateSuite.scala @@ -302,6 +302,13 @@ abstract class MathFunctionsValidateSuite extends FunctionsValidateSuite { } } + testWithMinSparkVersion("randstr", "4.0") { + // randstr generates random strings, so we only verify native execution, not result equality. + runQueryAndCompare("SELECT randstr(5, 0) from lineitem limit 100", compareResult = false) { + checkGlutenPlan[ProjectExecTransformer] + } + } + test("rint") { withTempPath { path => diff --git a/shims/common/src/main/scala/org/apache/gluten/expression/ExpressionNames.scala b/shims/common/src/main/scala/org/apache/gluten/expression/ExpressionNames.scala index 2542e54adbe..f2ae5647b14 100644 --- a/shims/common/src/main/scala/org/apache/gluten/expression/ExpressionNames.scala +++ b/shims/common/src/main/scala/org/apache/gluten/expression/ExpressionNames.scala @@ -194,6 +194,7 @@ object ExpressionNames { final val REMAINDER = "modulus" final val FACTORIAL = "factorial" final val RAND = "rand" + final val RANDSTR = "randstr" final val RINT = "rint" final val RIGHT = "right" diff --git a/shims/spark40/src/main/scala/org/apache/gluten/sql/shims/spark40/Spark40Shims.scala b/shims/spark40/src/main/scala/org/apache/gluten/sql/shims/spark40/Spark40Shims.scala index fbe69ecc73b..bbbad38010f 100644 --- a/shims/spark40/src/main/scala/org/apache/gluten/sql/shims/spark40/Spark40Shims.scala +++ b/shims/spark40/src/main/scala/org/apache/gluten/sql/shims/spark40/Spark40Shims.scala @@ -98,7 +98,8 @@ class Spark40Shims extends SparkShims { Sig[UrlEncode](ExpressionNames.URL_ENCODE), Sig[KnownNotContainsNull](ExpressionNames.KNOWN_NOT_CONTAINS_NULL), Sig[UrlDecode](ExpressionNames.URL_DECODE), - Sig[ToPrettyString](ExpressionNames.TO_PRETTY_STRING) + Sig[ToPrettyString](ExpressionNames.TO_PRETTY_STRING), + Sig[RandStr](ExpressionNames.RANDSTR) ) } diff --git a/shims/spark41/src/main/scala/org/apache/gluten/sql/shims/spark41/Spark41Shims.scala b/shims/spark41/src/main/scala/org/apache/gluten/sql/shims/spark41/Spark41Shims.scala index 62f6b4d3986..a031becdb06 100644 --- a/shims/spark41/src/main/scala/org/apache/gluten/sql/shims/spark41/Spark41Shims.scala +++ b/shims/spark41/src/main/scala/org/apache/gluten/sql/shims/spark41/Spark41Shims.scala @@ -97,7 +97,8 @@ class Spark41Shims extends SparkShims { Sig[UrlEncode](ExpressionNames.URL_ENCODE), Sig[KnownNotContainsNull](ExpressionNames.KNOWN_NOT_CONTAINS_NULL), Sig[UrlDecode](ExpressionNames.URL_DECODE), - Sig[ToPrettyString](ExpressionNames.TO_PRETTY_STRING) + Sig[ToPrettyString](ExpressionNames.TO_PRETTY_STRING), + Sig[RandStr](ExpressionNames.RANDSTR) ) }