aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Davidson <aaron@databricks.com>2014-12-04 00:58:42 -0800
committerReynold Xin <rxin@databricks.com>2014-12-04 00:58:52 -0800
commitdec838bcbd6e3ba5844173036f5caae3e67eb490 (patch)
treed82a078ac6ea3f504ee62b76c5adbde4e39ced43
parent2605acb043fd6693cbade67809f7bbe64e7c1b61 (diff)
downloadspark-dec838bcbd6e3ba5844173036f5caae3e67eb490.tar.gz
spark-dec838bcbd6e3ba5844173036f5caae3e67eb490.tar.bz2
spark-dec838bcbd6e3ba5844173036f5caae3e67eb490.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 (cherry picked from commit c6c7165e7ecf1690027d6bd4e0620012cd0d2310) Signed-off-by: Reynold Xin <rxin@databricks.com>
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala6
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
}