From be1fff7d2d069b92529ee92dd0a9b5f07a942c36 Mon Sep 17 00:00:00 2001 From: Michael Armbrust Date: Sat, 25 Jan 2014 16:38:30 -0800 Subject: [PATCH] Replace foreach with while in RowOrdering. Fixes #23 --- src/main/scala/catalyst/expressions/Row.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/scala/catalyst/expressions/Row.scala b/src/main/scala/catalyst/expressions/Row.scala index 2ea4d36224421..7f6b858c77673 100644 --- a/src/main/scala/catalyst/expressions/Row.scala +++ b/src/main/scala/catalyst/expressions/Row.scala @@ -82,7 +82,9 @@ class GenericRow(input: Seq[Any]) extends Row { class RowOrdering(ordering: Seq[SortOrder]) extends Ordering[Row] { def compare(a: Row, b: Row): Int = { - ordering.foreach { order => + var i = 0 + while(i < ordering.size) { + val order = ordering(i) val left = Evaluate(order.child, Vector(a)) val right = Evaluate(order.child, Vector(b)) @@ -101,6 +103,7 @@ class RowOrdering(ordering: Seq[SortOrder]) extends Ordering[Row] { } if (comparison != 0) return comparison } + i += 1 } return 0 }