Re: streaming result sets: progress

Поиск
Список
Период
Сортировка
От Scott Lamb
Тема Re: streaming result sets: progress
Дата
Msg-id 3DDE5696.6060201@slamb.org
обсуждение исходный текст
Ответ на streaming result sets: progress  (Nic Ferrier <nferrier@tapsellferrier.co.uk>)
Ответы Re: streaming result sets: progress
Список pgsql-jdbc
Nic Ferrier wrote:
> Scott Lamb <slamb@slamb.org> writes:
>>I suggest with ResultSet.CLOSE_CURSORS_AT_COMMIT (cursor method) vs
>>ResultSet.HOLD_CURSORS_OVER_COMMIT (old method). You can both request a
>>certain type when you create a Statement or PreparedStatement and get
>>the type of the resultset from the Statement or PreparedStatement.
>
>
> So what you're saying is that this code:
>
>    Statement st
>       = connection.createStatement(ResultSet.CLOSE_CURSORS_AT_COMMIT,
>                                         ResulSet.CONCUR_READ_ONLY);
>    ResultSet rs = st.executeQuery("select * from table");
>
>
> would produce a cursor based res set whereas:
>
>    Statement st = connection.createStatement();
>    ResultSet rs = st.executeQuery("select * from table");
>
> would not.

Yup.

> That would mean that we didn't need the fetch size signal. Or we
> could use the fetchSize signal as well.

I'm not sure that would work anyway. It's ResultSet.setFetchSize(),
which means you must already have a resultset when to change it. So it
seems like it'd be a little late for deciding how to execute the query.

> Note also that CLOSE_CURSORS_AT_COMMIT is not actually a result set
> type so it _might_ break other code.

Not sure what you mean. If client code is using CLOSE_CURSORS_AT_COMMIT
and expecting them to work beyond commit, it's their bug and an
easily-fixed one at that. And I don't see any other negative
consequences to using cursors, just the advantage of being able to
handle large queries.

Thanks,
Scott


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Vinni
Дата:
Сообщение: Problem
Следующее
От: Pedro Salazar
Дата:
Сообщение: Re: Problem