diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala index 5a30bbdf846a..6ccd5a451eaf 100755 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala @@ -2714,7 +2714,8 @@ case class Base64(child: Expression, chunkBase64: Boolean) dataType, "encode", Seq(child, Literal(chunkBase64, BooleanType)), - Seq(BinaryType, BooleanType)) + Seq(BinaryType, BooleanType), + returnNullable = false) override def toString: String = s"$prettyName($child)" diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/StringExpressionsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/StringExpressionsSuite.scala index 7210979f0846..b8d7a1d3cc0a 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/StringExpressionsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/StringExpressionsSuite.scala @@ -466,6 +466,7 @@ class StringExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper { val a = $"a".string.at(0) val b = $"b".binary.at(0) val bytes = Array[Byte](1, 2, 3, 4) + assert(!Base64(Literal(bytes)).nullable) checkEvaluation(Base64(Literal(bytes)), "AQIDBA==", create_row("abdef")) checkEvaluation(Base64(UnBase64(Literal("AQIDBA=="))), "AQIDBA==", create_row("abdef"))