openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joseph Weinstein <joe.weinst...@oracle.com>
Subject Re: Large result set problem on MySQL
Date Fri, 10 Apr 2009 17:11:05 GMT
At 10:02 AM 4/10/2009, Joseph Weinstein wrote:
>Hi Rick! What are you asking the statement to do
>when you set fetch size to a negative number? How
>are you verifying what result sets are doing?
>thanks,
>Joe Weinstein

Ooops, nevermind, I see in the MySQL docs that
MIN_VALUE will be taken by that driver to
always fetch only one row at a time. This is
a non-JDBC-standard MySQL-specific functionality/
value, so it would require some new JPA code
I think. I see in SQLBuffer.java that there is
a check: 
          if (fetch.getFetchBatchSize() > 0)
              stmnt.setFetchSize(fetch.getFetchBatchSize());

so for now, it seems that you cannot just set your
fetch size to MIN_INT and get it passed to the
statement.
HTH,
Joe




>At 09:54 AM 4/10/2009, Rick Curtis wrote:
>
>>Yesterday I was looking into large result sets and it appears that they don't work
as implemented/documented(?). I did some googling around [1] and found a number of posts talking
about how setFetchSize isn't being honored, some dating back as far as 2002. The MySQL docs
[2] states "When using versions of the JDBC driver earlier than 3.2.1, and connected to server
versions earlier than 5.0.3, the setFetchSize() method has no effect, other than to toggle
result set streaming as described above.". The doc outlines some additional instructions on
how to create a statement that is going to allow a streaming result set. After moving to a
newer JDBC driver, I wrote a simple test using JDBC and it does work properly. Below is a
snippet of the code [3] that I used to test this with JDBC, but I wasn't able to figure out
how to make OpenJPA do the same.
>>
>>Any thoughts/suggestions?
>>
>>[1] Google "mysql jdbc setFetchSize"
>>[2]http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html
>>[3]
>>stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
>>stmt.setFetchSize(Integer.MIN_VALUE);
>>-- 
>>View this message in context: http://n2.nabble.com/Large-result-set-problem-on-MySQL-tp2617152p2617152.html
>>Sent from the OpenJPA Developers mailing list archive at Nabble.com.
>>
>>
>>Notice:  This email message, together with any attachments, may contain information
 of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated entities,  that may be confidential,
 proprietary,  copyrighted  and/or legally privileged, and is intended solely for the use
of the individual or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this by email and then
delete it.


Mime
View raw message