aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
authorMichael Armbrust <michael@databricks.com>2014-08-27 15:14:08 -0700
committerMichael Armbrust <michael@databricks.com>2014-08-27 15:14:08 -0700
commit7d2a7a91f263bb9fbf24dc4dbffde8fe5e2c7442 (patch)
treed42df0d5dfe23d3e4cea4f833a863afa1a0e6d13 /sql/catalyst
parent65253502b913f390b26b9b631380b2c6cf1ccdf7 (diff)
downloadspark-7d2a7a91f263bb9fbf24dc4dbffde8fe5e2c7442.tar.gz
spark-7d2a7a91f263bb9fbf24dc4dbffde8fe5e2c7442.tar.bz2
spark-7d2a7a91f263bb9fbf24dc4dbffde8fe5e2c7442.zip
[SPARK-3235][SQL] Ensure in-memory tables don't always broadcast.
Author: Michael Armbrust <michael@databricks.com> Closes #2147 from marmbrus/inMemDefaultSize and squashes the following commits: 5390360 [Michael Armbrust] Merge remote-tracking branch 'origin/master' into inMemDefaultSize 14204d3 [Michael Armbrust] Set the context before creating SparkLogicalPlans. 8da4414 [Michael Armbrust] Make sure we throw errors when leaf nodes fail to provide statistcs 18ce029 [Michael Armbrust] Ensure in-memory tables don't always broadcast.
Diffstat (limited to 'sql/catalyst')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala14
1 files changed, 8 insertions, 6 deletions
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 8616ac45b0..f81d911194 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
@@ -41,9 +41,14 @@ abstract class LogicalPlan extends QueryPlan[LogicalPlan] {
case class Statistics(
sizeInBytes: BigInt
)
- lazy val statistics: Statistics = Statistics(
- sizeInBytes = children.map(_.statistics).map(_.sizeInBytes).product
- )
+ lazy val statistics: Statistics = {
+ if (children.size == 0) {
+ throw new UnsupportedOperationException(s"LeafNode $nodeName must implement statistics.")
+ }
+
+ Statistics(
+ sizeInBytes = children.map(_.statistics).map(_.sizeInBytes).product)
+ }
/**
* Returns the set of attributes that this node takes as
@@ -117,9 +122,6 @@ abstract class LogicalPlan extends QueryPlan[LogicalPlan] {
*/
abstract class LeafNode extends LogicalPlan with trees.LeafNode[LogicalPlan] {
self: Product =>
-
- override lazy val statistics: Statistics =
- throw new UnsupportedOperationException(s"LeafNode $nodeName must implement statistics.")
}
/**