[ 
https://issues.apache.org/jira/browse/DERBY-3573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12994608#comment-12994608
 ] 

Dag H. Wanvik commented on DERBY-3573:
--------------------------------------

+1 to making  both drivers comply. I think setFetchSize and setMaxRows are 
arthogonal, but if setFetchSize is set greater than setMaxRows, I think the 
setting in setMaxRows still apply: the "fetch size" (a "hint") is about how 
many rows to fetch at a time from the server to the client (trade-off between 
network round-tips, client memory size, latency for first rows) as far as I 
understand it. "Max size" is a hard limit for how many rows are visible as part 
of the result set, no matter whether this is enforced on server or client side.

> Argument checking for ResultSet.setFetchSize(int) is incorrect
> --------------------------------------------------------------
>
>                 Key: DERBY-3573
>                 URL: https://issues.apache.org/jira/browse/DERBY-3573
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.1.4, 10.3.2.1
>            Reporter: Dyre Tjeldvoll
>            Priority: Minor
>              Labels: derby_triage10_8
>
> The requirement that the argument to ResultSet.setFetchSize(int) be less than 
> Statement.getMaxRows() was dropped in Java 6/JDBC 4, (it is not present in 
> the Java 6 javadoc, but can still be seen in the Java 5 javadoc).
> The reason why the client driver doesn't throw an exception in this case is 
> because am.ResultSet incorrectly checks against ResultSet.maxRows_ and NOT 
> am.Statement.getMaxRows(). So when am.Statement.setMaxRows(int) is called 
> after a result set has already been created, am.ResultSet.setFechSize(int) 
> will check against a stale value.
> The question is what to do about this. The client driver clearly has a bug, 
> but should we fix it by duplicating the old behavior found in the embedded 
> driver, or change both drivers to comply with latest spec which allows any 
> non-negative value as argument to ResultSet.setFetchSize(int)?

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to