Re: Modify the DECLARE CURSOR command tag depending on the scrollable flag

Поиск
Список
Период
Сортировка
От Boszormenyi Zoltan
Тема Re: Modify the DECLARE CURSOR command tag depending on the scrollable flag
Дата
Msg-id 5296F901.50008@cybertec.at
обсуждение исходный текст
Ответ на Re: Modify the DECLARE CURSOR command tag depending on the scrollable flag  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Modify the DECLARE CURSOR command tag depending on the scrollable flag  (Michael Meskes <meskes@postgresql.org>)
Список pgsql-hackers
2013-11-28 00:17 keltezéssel, Tom Lane írta:
> Peter Eisentraut <peter_e@gmx.net> writes:
>> On 11/27/13, 3:47 PM, Tom Lane wrote:
>>> Given these considerations, I think it'd be better to allow explicit
>>> application control over whether read-ahead happens for a particular
>>> query.  And I have no problem whatsoever with requiring that the cursor
>>> be explicitly marked SCROLL or NO SCROLL before read-ahead will occur.
>> Well, technically, unspecified means NO SCROLL according to the SQL
>> standard.  A lot of applications in ECPG are ported from other systems,
>> which might make that assumption.  It wouldn't be very nice to have to
>> change all that.
> Hm.  So you're suggesting that ECPG fix this problem by inserting an
> explicit NO SCROLL clause into translated DECLARE CURSOR commands, if
> there's not a SCROLL clause?
>
> That would solve the problem of the ECPG library not being sure which
> behavior applies, but it might break existing apps that were unknowingly
> relying on a simple cursor being scrollable.  OTOH any such app would be
> subject to breakage anyway as a result of planner changes, so it's hard to
> complain against this, as long as it's happening in a major version
> update.
>
> I'm for it.

If all such apps are expected to be ported from other system,
then yes, that would also work. However, I am not so sure about this.

One thing is sure. With this change, ecpglib can still work with
older PostgreSQL versions but the application's behaviour changes
if the cursor doesn't have an explicit SCROLL/NO SCROLL.

In my first mail yesterday, I wrote "such a code has always been
buggy and should be fixed" and I meant it seriously.

I was only half serious with ripping this support code out of the backend.
However, this feature might be deprecated and removed in about
3 major release or what the usual policy is. Inconsistency between
different clients is also no good. You can only enforce similar client
behaviour with the server behaviour.

Anyway, is explicitly adding NO SCROLL the preferred solution for everyone?

Best regards,
Zoltán Böszörményi

>
>             regards, tom lane
>


-- 
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de     http://www.postgresql.at/




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

Предыдущее
От: Boszormenyi Zoltan
Дата:
Сообщение: Re: Modify the DECLARE CURSOR command tag depending on the scrollable flag
Следующее
От: Michael Meskes
Дата:
Сообщение: Re: Modify the DECLARE CURSOR command tag depending on the scrollable flag