You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2007/04/20 07:06:28 UTC
svn commit: r530646 - in /db/ddlutils/trunk: lib/
src/java/org/apache/ddlutils/platform/ModelBasedResultSetIterator.java
src/java/org/apache/ddlutils/platform/PlatformImplBase.java
Author: tomdz
Date: Thu Apr 19 22:06:28 2007
New Revision: 530646
URL: http://svn.apache.org/viewvc?view=rev&rev=530646
Log:
Fix for DDLUTILS-170
Modified:
db/ddlutils/trunk/lib/ (props changed)
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/ModelBasedResultSetIterator.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
Propchange: db/ddlutils/trunk/lib/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Apr 19 22:06:28 2007
@@ -1,3 +1,3 @@
-
drivers
checkstyle*.jar
+driver-alternatives
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/ModelBasedResultSetIterator.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/ModelBasedResultSetIterator.java?view=diff&rev=530646&r1=530645&r2=530646
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/ModelBasedResultSetIterator.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/ModelBasedResultSetIterator.java Thu Apr 19 22:06:28 2007
@@ -255,6 +255,7 @@
{
curTable = (Table)_preparedQueryHints.get(_caseSensitive ? columnName : columnName.toLowerCase());
}
+
Object value = _platform.getObjectFromResultSet(_resultSet, columnName, curTable);
bean.set(propName, value);
@@ -267,6 +268,23 @@
cleanUp();
throw new DatabaseOperationException("Exception while reading the row from the resultset", ex);
}
+ }
+ }
+
+ /**
+ * Advances the iterator without materializing the object. This is the same effect as calling
+ * {@link #next()} except that no object is created and nothing is read from the result set.
+ */
+ public void advance()
+ {
+ advanceIfNecessary();
+ if (_isAtEnd)
+ {
+ throw new NoSuchElementException("No more elements in the resultset");
+ }
+ else
+ {
+ _needsAdvancing = true;
}
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java?view=diff&rev=530646&r1=530645&r2=530646
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java Thu Apr 19 22:06:28 2007
@@ -1001,12 +1001,16 @@
int rowIdx = 0;
- for (Iterator it = createResultSetIterator(model, resultSet, queryHints); ((end < 0) || (rowIdx <= end)) && it.hasNext(); rowIdx++)
+ for (ModelBasedResultSetIterator it = createResultSetIterator(model, resultSet, queryHints); ((end < 0) || (rowIdx <= end)) && it.hasNext(); rowIdx++)
{
if (rowIdx >= start)
{
result.add(it.next());
}
+ else
+ {
+ it.advance();
+ }
}
}
catch (SQLException ex)
@@ -1081,11 +1085,15 @@
int rowIdx = 0;
- for (Iterator it = createResultSetIterator(model, resultSet, queryHints); ((end < 0) || (rowIdx <= end)) && it.hasNext(); rowIdx++)
+ for (ModelBasedResultSetIterator it = createResultSetIterator(model, resultSet, queryHints); ((end < 0) || (rowIdx <= end)) && it.hasNext(); rowIdx++)
{
if (rowIdx >= start)
{
result.add(it.next());
+ }
+ else
+ {
+ it.advance();
}
}
}