diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/randomExpressions.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/randomExpressions.scala index ea9ca451c2cb1..f329f8346b0de 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/randomExpressions.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/randomExpressions.scala @@ -81,6 +81,7 @@ trait ExpressionWithRandomSeed extends Expression { private[catalyst] object ExpressionWithRandomSeed { def expressionToSeed(e: Expression, source: String): Option[Long] = e match { + case IntegerLiteral(seed) => Some(seed) case LongLiteral(seed) => Some(seed) case Literal(null, _) => None case _ => throw QueryCompilationErrors.invalidRandomSeedParameter(source, e) diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CollectionExpressionsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CollectionExpressionsSuite.scala index e9de59b3ec48c..55148978fa005 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CollectionExpressionsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CollectionExpressionsSuite.scala @@ -2293,6 +2293,14 @@ class CollectionExpressionsSuite evaluateWithMutableProjection(Shuffle(ai0, seed2))) assert(evaluateWithUnsafeProjection(Shuffle(ai0, seed1)) !== evaluateWithUnsafeProjection(Shuffle(ai0, seed2))) + + val seed3 = Literal.create(r.nextInt()) + assert(evaluateWithoutCodegen(new Shuffle(ai0, seed3)) === + evaluateWithoutCodegen(new Shuffle(ai0, seed3))) + assert(evaluateWithMutableProjection(new Shuffle(ai0, seed3)) === + evaluateWithMutableProjection(new Shuffle(ai0, seed3))) + assert(evaluateWithUnsafeProjection(new Shuffle(ai0, seed3)) === + evaluateWithUnsafeProjection(new Shuffle(ai0, seed3))) } test("Array Except") { diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscExpressionsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscExpressionsSuite.scala index 1f37886f44258..40e6fe1a90a63 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscExpressionsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscExpressionsSuite.scala @@ -71,6 +71,13 @@ class MiscExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper { evaluateWithMutableProjection(Uuid(seed2))) assert(evaluateWithUnsafeProjection(Uuid(seed1)) !== evaluateWithUnsafeProjection(Uuid(seed2))) + + val seed3 = Literal.create(r.nextInt()) + assert(evaluateWithoutCodegen(new Uuid(seed3)) === evaluateWithoutCodegen(new Uuid(seed3))) + assert(evaluateWithMutableProjection(new Uuid(seed3)) === + evaluateWithMutableProjection(new Uuid(seed3))) + assert(evaluateWithUnsafeProjection(new Uuid(seed3)) === + evaluateWithUnsafeProjection(new Uuid(seed3))) } test("PrintToStderr") {