diff options
Diffstat (limited to 'src/dbc')
-rw-r--r-- | src/dbc/scala/dbc/result/Relation.scala | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/dbc/scala/dbc/result/Relation.scala b/src/dbc/scala/dbc/result/Relation.scala index 610131abd8..67a8e51cc3 100644 --- a/src/dbc/scala/dbc/result/Relation.scala +++ b/src/dbc/scala/dbc/result/Relation.scala @@ -53,10 +53,11 @@ abstract class Relation extends AnyRef with Iterable[Tuple] { * iterators will share the same state. */ def elements: Iterator[Tuple] = new Iterator[Tuple] { protected val result: java.sql.ResultSet = Relation.this.sqlResult - def hasNext: Boolean = !(result.isLast()) + def hasNext: Boolean = resultNext + private var resultNext = result.next() def next: Tuple = { - if (result.next()) { - new Tuple { + if (resultNext) { + val newTuple = new Tuple { val me = this val originatingRelation = Relation.this val fields: List[Field] = for (fieldMetadata <- metadata) yield @@ -66,7 +67,10 @@ abstract class Relation extends AnyRef with Iterable[Tuple] { val originatingTuple = me } } - } else error("next on empty iterator") + resultNext = result.next() + newTuple + } + else error("next on empty iterator") } } } |