I haven't seen any feedback on this report, but FYI... I worked around
this problem by rewriting my code to use a dynamic prepared statement
instead, e.g.
OLD:
EXEC SQL MOVE FORWARD :RowMove IN Sniffer;
NEW:
const char mover[] =3D "MOVE FORWARD ? IN Sniffer";
[...]
EXEC SQL PREPARE MoverSQL FROM :mover;
[...]
EXEC SQL EXECUTE MoverSQL USING :RowMove;
[...]
EXEC SQL DEALLOCATE PREPARE MoverSQL;
Assuming the new restriction on the original "MOVE FORWARD" is
intentional, it would be nice to see a warning that code changes are
required get into the documentation.
Thanks,
Scott
-----Original Message-----
From: pgsql-bugs-owner@postgresql.org
[mailto:pgsql-bugs-owner@postgresql.org] On Behalf Of Scott Bailey
Sent: Monday, October 29, 2007 11:45 AM
To: pgsql-bugs@postgresql.org
Subject: [BUGS] BUG #3706: ecpg regression: "MOVE FORWARD"
The following bug has been logged online:
Bug reference: 3706
Logged by: Scott Bailey
Email address: scott.bailey@eds.com
PostgreSQL version: 8.3beta1
Operating system: Tru64
Description: ecpg regression: "MOVE FORWARD"
Details:=20
The following statement:
exec sql MOVE FORWARD :RowMove IN Sniffer;
which worked correctly in 8.2.4 and previous versions, now fails to
compile
in 8.3beta1; I receive the following error message:
ERROR: fetch/move count must not be a variable.
This sucks and I couldn't find anything about it in the TODO list or
Release
Notes. Is this unintentional, or should I be recoding my program to use
a
loop to move forward 1 row at a time?