From: davecramer@gmail.com [mailto:davecramer@gmail.com] On Behalf Of > Dave Cramer > This is what I take issue with. It should return 0 which means that it has > not been set. What use is it to the user ?
I'm sorry to repeat myself. According to the API doc, the use of getFetchSize() is to retrieve the number of result set rows, not the hint value. So, I thought 0 was not appropriate because 0 is only a valid hint value passed to setFetchSize(). Which sentence in what document does your returning 0 follow?
If this Statement object has not set a fetch size by calling the method setFetchSize, the return value is implementation-specific.
This states that if setFetchSize has not been called then we return what we want. Given that if the statement is in auto-commit then the fetch size is irrelevant. The correct logic would be if autocommit=false then return the default value, otherwise 0, but I'm not advocating this either.
So my question to you is how would you use this information anyway? It's not like you can allocate more memory or something to accommodate the rows. It makes more sense to me that if I get 0 back then I know I have to set it. If I get the value back that I set it to then I know what's going on. I would assert that anyone that is knowledgable enough to use this is going to call setFetchSize.