aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReynold Xin <rxin@databricks.com>2015-07-07 22:12:46 -0700
committerReynold Xin <rxin@databricks.com>2015-07-07 22:12:46 -0700
commit61c3cf793d82f3e8da85bb918d36e95986244786 (patch)
tree4c3591a9410cf7cca4dbfaa4ca43f020efa7e7dc
parent5d603dfe497ded78d8f09711578f1e764e6e4e91 (diff)
downloadspark-61c3cf793d82f3e8da85bb918d36e95986244786.tar.gz
spark-61c3cf793d82f3e8da85bb918d36e95986244786.tar.bz2
spark-61c3cf793d82f3e8da85bb918d36e95986244786.zip
[SPARK-8879][SQL] Remove EmptyRow class.
As a baby step towards no megamorphic InternalRow. Author: Reynold Xin <rxin@databricks.com> Closes #7277 from rxin/remove-empty-row and squashes the following commits: 594100e [Reynold Xin] [SPARK-8879][SQL] Remove EmptyRow class.
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala2
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/package.scala7
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/rows.scala20
3 files changed, 9 insertions, 20 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
index 65b9d7e608..d1e4c45886 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
@@ -120,4 +120,6 @@ case class CreateNamedStruct(children: Seq[Expression]) extends Expression {
override def eval(input: InternalRow): Any = {
InternalRow(valExprs.map(_.eval(input)): _*)
}
+
+ override def prettyName: String = "named_struct"
}
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/package.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/package.scala
index 5155bfe41b..30b7f8d376 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/package.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/package.scala
@@ -17,6 +17,8 @@
package org.apache.spark.sql.catalyst
+import org.apache.spark.sql.catalyst.expressions._
+
/**
* A set of classes that can be used to represent trees of relational expressions. A key goal of
* the expression library is to hide the details of naming and scoping from developers who want to
@@ -50,6 +52,11 @@ package org.apache.spark.sql.catalyst
package object expressions {
/**
+ * Used as input into expressions whose output does not depend on any input value.
+ */
+ val EmptyRow: InternalRow = null
+
+ /**
* Converts a [[InternalRow]] to another Row given a sequence of expression that define each
* column of the new row. If the schema of the input row is specified, then the given expression
* will be bound to that schema.
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/rows.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/rows.scala
index 1363884c20..8b472a529e 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/rows.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/rows.scala
@@ -55,26 +55,6 @@ abstract class MutableRow extends InternalRow {
}
/**
- * A row with no data. Calling any methods will result in an error. Can be used as a placeholder.
- */
-object EmptyRow extends InternalRow {
- override def apply(i: Int): Any = throw new UnsupportedOperationException
- override def toSeq: Seq[Any] = Seq.empty
- override def length: Int = 0
- override def isNullAt(i: Int): Boolean = throw new UnsupportedOperationException
- override def getInt(i: Int): Int = throw new UnsupportedOperationException
- override def getLong(i: Int): Long = throw new UnsupportedOperationException
- override def getDouble(i: Int): Double = throw new UnsupportedOperationException
- override def getFloat(i: Int): Float = throw new UnsupportedOperationException
- override def getBoolean(i: Int): Boolean = throw new UnsupportedOperationException
- override def getShort(i: Int): Short = throw new UnsupportedOperationException
- override def getByte(i: Int): Byte = throw new UnsupportedOperationException
- override def getString(i: Int): String = throw new UnsupportedOperationException
- override def getAs[T](i: Int): T = throw new UnsupportedOperationException
- override def copy(): InternalRow = this
-}
-
-/**
* A row implementation that uses an array of objects as the underlying storage.
*/
trait ArrayBackedRow {