From 60ccde1a59861e07bab7e0558bf7c93df963f4fe Mon Sep 17 00:00:00 2001 From: Shilei Date: Mon, 15 Jun 2015 10:43:51 +0800 Subject: [PATCH] Add more test case --- .../apache/spark/sql/catalyst/expressions/misc.scala | 6 +++--- .../sql/catalyst/expressions/MiscFunctionsSuite.scala | 11 +++++------ .../main/scala/org/apache/spark/sql/functions.scala | 2 ++ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/misc.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/misc.scala index c3eac1bc9731c..7c6639498fa1e 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/misc.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/misc.scala @@ -25,8 +25,8 @@ import org.apache.spark.sql.types.{BinaryType, StringType, DataType} import org.apache.spark.unsafe.types.UTF8String /** - * A function that calculates an MD5 128-bit checksum for the string or binary. - * Defined for String and Binary types. + * A function that calculates an MD5 128-bit checksum and returns it as a hex string + * For input of type [[StringType]] or [[BinaryType]] */ case class Md5(child: Expression) extends UnaryExpression { @@ -43,7 +43,7 @@ case class Md5(child: Expression) extends UnaryExpression { override def children: Seq[Expression] = child :: Nil - override def eval(input: Row): Any = { + override def eval(input: InternalRow): Any = { val value = child.eval(input) if (value == null) { null diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscFunctionsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscFunctionsSuite.scala index 6a9fa1264339e..1179a59bae323 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscFunctionsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MiscFunctionsSuite.scala @@ -18,16 +18,15 @@ package org.apache.spark.sql.catalyst.expressions import org.apache.spark.SparkFunSuite -import org.apache.spark.sql.catalyst.dsl.expressions._ +import org.apache.spark.sql.types.{StringType, BinaryType} class MiscFunctionsSuite extends SparkFunSuite with ExpressionEvalHelper { test("md5") { - val s1 = 'a.string.at(0) - val s2 = 'a.binary.at(0) - checkEvaluation(Md5(s1), "902fbdd2b1df0c4f70b4a5d23525e932", create_row("ABC")) - checkEvaluation(Md5(s2), "6ac1e56bc78f031059be7be854522c4c", - create_row(Array[Byte](1, 2, 3, 4, 5, 6))) + checkEvaluation(Md5(Literal("ABC")), "902fbdd2b1df0c4f70b4a5d23525e932") + checkEvaluation(Md5(Literal.create(Array[Byte](1, 2, 3, 4, 5, 6), BinaryType)), "6ac1e56bc78f031059be7be854522c4c") + checkEvaluation(Md5(Literal.create(null, BinaryType)), null) + checkEvaluation(Md5(Literal.create(null, StringType)), null) } } diff --git a/sql/core/src/main/scala/org/apache/spark/sql/functions.scala b/sql/core/src/main/scala/org/apache/spark/sql/functions.scala index 21b41a0c33f2c..0797bc48958a0 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/functions.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/functions.scala @@ -1341,6 +1341,7 @@ object functions { /** * Calculates the MD5 digest and returns the value as a 32 character hex string. + * * @group misc_funcs * @since 1.5.0 */ @@ -1348,6 +1349,7 @@ object functions { /** * Calculates the MD5 digest and returns the value as a 32 character hex string. + * * @group misc_funcs * @since 1.5.0 */