Repository: spark Updated Branches: refs/heads/branch-1.0 05f84e28f -> c3ebf8ee6
[SQL]Add base row updating methods for JoinedRow This will be helpful in join operators. Author: Cheng Hao <hao.ch...@intel.com> Closes #1187 from chenghao-intel/joinedRow and squashes the following commits: 87c19e3 [Cheng Hao] Add base row set methods for JoinedRow (cherry picked from commit 133495d82672c3f34d40a6298cc80c31f91faf5c) Signed-off-by: Michael Armbrust <mich...@databricks.com> Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/c3ebf8ee Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/c3ebf8ee Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/c3ebf8ee Branch: refs/heads/branch-1.0 Commit: c3ebf8ee680df43decbcce122c5203c27e8a75fa Parents: 05f84e2 Author: Cheng Hao <hao.ch...@intel.com> Authored: Tue Jun 24 19:07:02 2014 -0700 Committer: Michael Armbrust <mich...@databricks.com> Committed: Tue Jun 24 19:07:22 2014 -0700 ---------------------------------------------------------------------- .../sql/catalyst/expressions/Projection.scala | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/spark/blob/c3ebf8ee/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Projection.scala ---------------------------------------------------------------------- diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Projection.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Projection.scala index c9b7cea..a9e976c 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Projection.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Projection.scala @@ -81,6 +81,18 @@ class JoinedRow extends Row { this } + /** Updates this JoinedRow by updating its left base row. Returns itself. */ + def withLeft(newLeft: Row): Row = { + row1 = newLeft + this + } + + /** Updates this JoinedRow by updating its right base row. Returns itself. */ + def withRight(newRight: Row): Row = { + row2 = newRight + this + } + def iterator = row1.iterator ++ row2.iterator def length = row1.length + row2.length @@ -124,4 +136,9 @@ class JoinedRow extends Row { } new GenericRow(copiedValues) } + + override def toString() = { + val row = (if (row1 != null) row1 else Seq[Any]()) ++ (if (row2 != null) row2 else Seq[Any]()) + s"[${row.mkString(",")}]" + } }