2013-11-23 22:01 keltezéssel, Tom Lane írta:
Boszormenyi Zoltan <z...@cybertec.at> writes:
Attached is the patch that modified the command tag returned by
the DECLARE CURSOR command. It returns "DECLARE SCROLL CURSOR"
or "DECLARE NO SCROLL CURSOR" depending on the cursor's
scrollable flag that can be determined internally even if neither is
This does not strike me as an acceptable change. It will break any code
that's expecting the existing command tag, for little or no benefit
to most applications. Even if backwards compatibility were of no concern,
I'm not convinced it's a good thing to expose the backend's internal
choices about query plans used for cursors, which is what this is
I saw code in the backend allowing a cursor to be scrollable, although
it was not declared as such. How about ripping that out?
That way there would be no incentive for lazy SQL coding using simple cursors.
You can argue that it would also break application compatibility but
on the other hand, such a code has always been buggy and should be fixed.
It is expected by the ECPG cursor readahead code.
And that doesn't sound like a sufficient excuse. You should only assume a
cursor is scrollable if SCROLL was specified in the cursor declaration
command, which it'd seem to me is something ECPG would or easily could
know about commands it issues.
Yes, it can and I have a patch in the series passing this info to ecpglib.
I am also arguing for backward compatibility on a different angle:
this small backend change would still allow using simple cursors
in ECPG while using the cursor readahead.
And it's not the first time drivers have to adapt to new PostgreSQL major
If it was, I wouldn't have the courage to set a precedent either.
Cybertec Schönig & Schönig GmbH
A-2700 Wiener Neustadt, Austria
Sent via pgsql-hackers mailing list (email@example.com)
To make changes to your subscription: