From 0c393a586b2a172c0138eeacf7552d8561157af4 Mon Sep 17 00:00:00 2001 From: Josh Rosen Date: Mon, 22 Nov 2021 23:58:06 -0800 Subject: [PATCH] Cache LogicalPlan.isStreaming() --- .../apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 7c31a0091811..4aa7bf1c4f9a 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,7 +41,8 @@ abstract class LogicalPlan def metadataOutput: Seq[Attribute] = children.flatMap(_.metadataOutput) /** Returns true if this subtree has data from a streaming data source. */ - def isStreaming: Boolean = children.exists(_.isStreaming) + def isStreaming: Boolean = _isStreaming + private[this] lazy val _isStreaming = children.exists(_.isStreaming) override def verboseStringWithSuffix(maxFields: Int): String = { super.verboseString(maxFields) + statsCache.map(", " + _.toString).getOrElse("")