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 + * [EMAIL PROTECTED] #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(); } } }