diff options
author | Aaron Davidson <aaron@databricks.com> | 2014-12-04 00:58:42 -0800 |
---|---|---|
committer | Reynold Xin <rxin@databricks.com> | 2014-12-04 00:58:42 -0800 |
commit | c6c7165e7ecf1690027d6bd4e0620012cd0d2310 (patch) | |
tree | 2e23032af9332fb3fe1922a7bbf6d1fbec5cb271 | |
parent | 20bfea4ab7c0923e8d3f039d0c5098669db4d5b0 (diff) | |
download | spark-c6c7165e7ecf1690027d6bd4e0620012cd0d2310.tar.gz spark-c6c7165e7ecf1690027d6bd4e0620012cd0d2310.tar.bz2 spark-c6c7165e7ecf1690027d6bd4e0620012cd0d2310.zip |
[SQL] Minor: Avoid calling Seq#size in a loop
Just found this instance while doing some jstack-based profiling of a Spark SQL job. It is very unlikely that this is causing much of a perf issue anywhere, but it is unnecessarily suboptimal.
Author: Aaron Davidson <aaron@databricks.com>
Closes #3593 from aarondav/seq-opt and squashes the following commits:
962cdfc [Aaron Davidson] [SQL] Minor: Avoid calling Seq#size in a loop
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala index 84a3567895..08b982bc67 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala @@ -45,9 +45,9 @@ case class Coalesce(children: Seq[Expression]) extends Expression { override def eval(input: Row): Any = { var i = 0 var result: Any = null - while(i < children.size && result == null) { - result = children(i).eval(input) - i += 1 + val childIterator = children.iterator + while (childIterator.hasNext && result == null) { + result = childIterator.next().eval(input) } result } |