You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by rx...@apache.org on 2015/07/16 02:50:14 UTC
spark git commit: [SPARK-9086][SQL] Remove BinaryNode from TreeNode.
Repository: spark
Updated Branches:
refs/heads/master affbe329a -> b0645195d
[SPARK-9086][SQL] Remove BinaryNode from TreeNode.
These traits are not super useful, and yet cause problems with toString in expressions due to the orders they are mixed in.
Author: Reynold Xin <rx...@databricks.com>
Closes #7433 from rxin/remove-binary-node and squashes the following commits:
1881f78 [Reynold Xin] [SPARK-9086][SQL] Remove BinaryNode from TreeNode.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/b0645195
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/b0645195
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/b0645195
Branch: refs/heads/master
Commit: b0645195d0da57065885e078e08bd6c42f4f19b0
Parents: affbe32
Author: Reynold Xin <rx...@databricks.com>
Authored: Wed Jul 15 17:50:11 2015 -0700
Committer: Reynold Xin <rx...@databricks.com>
Committed: Wed Jul 15 17:50:11 2015 -0700
----------------------------------------------------------------------
.../sql/catalyst/expressions/Expression.scala | 17 ++++++++++++++---
.../sql/catalyst/plans/logical/LogicalPlan.scala | 7 ++++++-
.../apache/spark/sql/catalyst/trees/TreeNode.scala | 9 ---------
.../org/apache/spark/sql/execution/SparkPlan.scala | 7 ++++++-
4 files changed, 26 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/b0645195/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
index 7b37ae7..8766731 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
@@ -187,8 +187,10 @@ abstract class Expression extends TreeNode[Expression] {
/**
* A leaf expression, i.e. one without any child expressions.
*/
-abstract class LeafExpression extends Expression with trees.LeafNode[Expression] {
+abstract class LeafExpression extends Expression {
self: Product =>
+
+ def children: Seq[Expression] = Nil
}
@@ -196,9 +198,13 @@ abstract class LeafExpression extends Expression with trees.LeafNode[Expression]
* An expression with one input and one output. The output is by default evaluated to null
* if the input is evaluated to null.
*/
-abstract class UnaryExpression extends Expression with trees.UnaryNode[Expression] {
+abstract class UnaryExpression extends Expression {
self: Product =>
+ def child: Expression
+
+ override def children: Seq[Expression] = child :: Nil
+
override def foldable: Boolean = child.foldable
override def nullable: Boolean = child.nullable
@@ -271,9 +277,14 @@ abstract class UnaryExpression extends Expression with trees.UnaryNode[Expressio
* An expression with two inputs and one output. The output is by default evaluated to null
* if any input is evaluated to null.
*/
-abstract class BinaryExpression extends Expression with trees.BinaryNode[Expression] {
+abstract class BinaryExpression extends Expression {
self: Product =>
+ def left: Expression
+ def right: Expression
+
+ override def children: Seq[Expression] = Seq(left, right)
+
override def foldable: Boolean = left.foldable && right.foldable
override def nullable: Boolean = left.nullable || right.nullable
http://git-wip-us.apache.org/repos/asf/spark/blob/b0645195/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala
index e911b90..d7077a0 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala
@@ -291,6 +291,11 @@ abstract class UnaryNode extends LogicalPlan with trees.UnaryNode[LogicalPlan] {
/**
* A logical plan node with a left and right child.
*/
-abstract class BinaryNode extends LogicalPlan with trees.BinaryNode[LogicalPlan] {
+abstract class BinaryNode extends LogicalPlan {
self: Product =>
+
+ def left: LogicalPlan
+ def right: LogicalPlan
+
+ override def children: Seq[LogicalPlan] = Seq(left, right)
}
http://git-wip-us.apache.org/repos/asf/spark/blob/b0645195/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala
index 09f6c6b..16844b2 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala
@@ -453,15 +453,6 @@ abstract class TreeNode[BaseType <: TreeNode[BaseType]] {
}
}
-/**
- * A [[TreeNode]] that has two children, [[left]] and [[right]].
- */
-trait BinaryNode[BaseType <: TreeNode[BaseType]] {
- def left: BaseType
- def right: BaseType
-
- def children: Seq[BaseType] = Seq(left, right)
-}
/**
* A [[TreeNode]] with no children.
http://git-wip-us.apache.org/repos/asf/spark/blob/b0645195/sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala
index 4d7d862..9dc7879 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala
@@ -247,6 +247,11 @@ private[sql] trait UnaryNode extends SparkPlan with trees.UnaryNode[SparkPlan] {
override def outputPartitioning: Partitioning = child.outputPartitioning
}
-private[sql] trait BinaryNode extends SparkPlan with trees.BinaryNode[SparkPlan] {
+private[sql] trait BinaryNode extends SparkPlan {
self: Product =>
+
+ def left: SparkPlan
+ def right: SparkPlan
+
+ override def children: Seq[SparkPlan] = Seq(left, right)
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org