From 1087bafafb1e716bf0a22918e11b77f7cee2562d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 11 Aug 2014 09:47:31 +0200 Subject: [PATCH] [#3514] ResultQuery.fetchLazy() ignores fetchSize() --- .../jooq/test/all/testcases/FetchTests.java | 47 +++++++++++++++++-- .../org/jooq/impl/AbstractResultQuery.java | 9 +++- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/jOOQ-test/src/test/java/org/jooq/test/all/testcases/FetchTests.java b/jOOQ-test/src/test/java/org/jooq/test/all/testcases/FetchTests.java index 6d6ec292cd..d664d4f05f 100644 --- a/jOOQ-test/src/test/java/org/jooq/test/all/testcases/FetchTests.java +++ b/jOOQ-test/src/test/java/org/jooq/test/all/testcases/FetchTests.java @@ -65,6 +65,7 @@ import static org.junit.Assert.fail; import java.math.BigDecimal; import java.sql.Date; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; @@ -83,6 +84,8 @@ import java.util.NoSuchElementException; import org.jooq.AttachableInternal; import org.jooq.Cursor; +import org.jooq.DSLContext; +import org.jooq.ExecuteContext; import org.jooq.Field; import org.jooq.Record; import org.jooq.Record1; @@ -99,6 +102,8 @@ import org.jooq.conf.Settings; import org.jooq.exception.DataAccessException; import org.jooq.exception.InvalidResultException; import org.jooq.exception.MappingException; +import org.jooq.impl.DefaultConnectionProvider; +import org.jooq.impl.DefaultExecuteListener; import org.jooq.impl.SQLDataType; import org.jooq.test.BaseTest; import org.jooq.test.jOOQAbstractTest; @@ -120,6 +125,8 @@ import org.jooq.test.all.ImmutableAuthorWithConstructorPropertiesAndJPAAnnotatio import org.jooq.test.all.ImmutableAuthorWithConstructorPropertiesAndPublicFields; import org.jooq.test.all.StaticWithAnnotations; import org.jooq.test.all.StaticWithoutAnnotations; +import org.jooq.tools.jdbc.DefaultConnection; +import org.jooq.tools.jdbc.DefaultPreparedStatement; import org.jooq.tools.jdbc.JDBCUtils; import org.junit.Assert; @@ -1462,12 +1469,16 @@ extends BaseTest cursor = create().selectFrom(TBook()).orderBy(TBook_ID()).fetchSize(fetchSize).fetchLazy(); + Cursor cursor = create.selectFrom(TBook()).orderBy(TBook_ID()).fetchSize(fetchSize).fetchLazy(); + assertFetchSize(fetchSize, listener); assertTrue(cursor.hasNext()); assertTrue(cursor.hasNext()); @@ -1519,7 +1530,8 @@ extends BaseTest fetch0 = cursor.fetch(0); assertTrue(fetch0.isEmpty()); @@ -1559,6 +1572,34 @@ extends BaseTest extends AbstractQuery imple @Override public final Cursor fetchLazy() { - return fetchLazy(0); + return fetchLazy(fetchSize); } @Override @Deprecated public final Cursor fetchLazy(int size) { + final int previousFetchSize = fetchSize; + + // [#3515] TODO: Avoid modifying a Query's per-execution state lazy = true; fetchSize = size; @@ -354,7 +357,7 @@ abstract class AbstractResultQuery extends AbstractQuery imple } finally { lazy = false; - fetchSize = 0; + fetchSize = previousFetchSize; } return cursor; @@ -362,6 +365,8 @@ abstract class AbstractResultQuery extends AbstractQuery imple @Override public final List> fetchMany() { + + // [#3515] TODO: Avoid modifying a Query's per-execution state many = true; try {