You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by pw...@apache.org on 2014/05/09 00:31:54 UTC
git commit: [SPARK-1754] [SQL] Add missing arithmetic DSL operations.
Repository: spark
Updated Branches:
refs/heads/master 5c5e7d580 -> 322b1808d
[SPARK-1754] [SQL] Add missing arithmetic DSL operations.
Add missing arithmetic DSL operations: `unary_-`, `%`.
Author: Takuya UESHIN <ue...@happy-camper.st>
Closes #689 from ueshin/issues/SPARK-1754 and squashes the following commits:
a09ef69 [Takuya UESHIN] Add also missing ! (not) operation.
f73ae2c [Takuya UESHIN] Remove redundant tests.
5b3f087 [Takuya UESHIN] Add tests relating DSL operations.
e09c5b8 [Takuya UESHIN] Add missing arithmetic DSL operations.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/322b1808
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/322b1808
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/322b1808
Branch: refs/heads/master
Commit: 322b1808d21143dc323493203929488d69e8878a
Parents: 5c5e7d5
Author: Takuya UESHIN <ue...@happy-camper.st>
Authored: Thu May 8 15:31:47 2014 -0700
Committer: Patrick Wendell <pw...@gmail.com>
Committed: Thu May 8 15:31:47 2014 -0700
----------------------------------------------------------------------
.../org/apache/spark/sql/catalyst/dsl/package.scala | 4 ++++
.../expressions/ExpressionEvaluationSuite.scala | 16 +++++++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/322b1808/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
index dc83485..78d3a1d 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
@@ -57,10 +57,14 @@ package object dsl {
trait ImplicitOperators {
def expr: Expression
+ def unary_- = UnaryMinus(expr)
+ def unary_! = Not(expr)
+
def + (other: Expression) = Add(expr, other)
def - (other: Expression) = Subtract(expr, other)
def * (other: Expression) = Multiply(expr, other)
def / (other: Expression) = Divide(expr, other)
+ def % (other: Expression) = Remainder(expr, other)
def && (other: Expression) = And(expr, other)
def || (other: Expression) = Or(expr, other)
http://git-wip-us.apache.org/repos/asf/spark/blob/322b1808/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
index 91605d0..344d8a3 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
@@ -61,7 +61,7 @@ class ExpressionEvaluationSuite extends FunSuite {
test("3VL Not") {
notTrueTable.foreach {
case (v, answer) =>
- val expr = Not(Literal(v, BooleanType))
+ val expr = ! Literal(v, BooleanType)
val result = expr.eval(null)
if (result != answer)
fail(s"$expr should not evaluate to $result, expected: $answer") }
@@ -381,6 +381,13 @@ class ExpressionEvaluationSuite extends FunSuite {
checkEvaluation(Add(c1, Literal(null, IntegerType)), null, row)
checkEvaluation(Add(Literal(null, IntegerType), c2), null, row)
checkEvaluation(Add(Literal(null, IntegerType), Literal(null, IntegerType)), null, row)
+
+ checkEvaluation(-c1, -1, row)
+ checkEvaluation(c1 + c2, 3, row)
+ checkEvaluation(c1 - c2, -1, row)
+ checkEvaluation(c1 * c2, 2, row)
+ checkEvaluation(c1 / c2, 0, row)
+ checkEvaluation(c1 % c2, 1, row)
}
test("BinaryComparison") {
@@ -395,6 +402,13 @@ class ExpressionEvaluationSuite extends FunSuite {
checkEvaluation(LessThan(c1, Literal(null, IntegerType)), null, row)
checkEvaluation(LessThan(Literal(null, IntegerType), c2), null, row)
checkEvaluation(LessThan(Literal(null, IntegerType), Literal(null, IntegerType)), null, row)
+
+ checkEvaluation(c1 < c2, true, row)
+ checkEvaluation(c1 <= c2, true, row)
+ checkEvaluation(c1 > c2, false, row)
+ checkEvaluation(c1 >= c2, false, row)
+ checkEvaluation(c1 === c2, false, row)
+ checkEvaluation(c1 !== c2, true, row)
}
}