FETCH from scroll cursor does not return count in libpq PQcmdStatus
Using libpq with pg 8.2.1 on WinXP Pro SP2.
After a PQExec with a fetch from a scroll cursor, I only get "FETCH" from PQcmdStatus, and not "FETCH count" as described in the 8.2.1 docs. However, PQntuples returns the number of fetched rows. If I replace the FETCH by a MOVE, PQcmdStatus returns "MOVE count".
The discussion we had on irc #postgresql suggested that this might be a bug, or have we missed some points regarding the use of scroll cursors?
"Knut P. Lehre" <knutpl@broadpark.no> writes:
After a PQExec with a fetch from a scroll cursor, I only get "FETCH" from PQcmdStatus, and not "FETCH count" as described in the 8.2.1 docs. However, PQntuples returns the number of fetched rows. If I replace the FETCH by a MOVE, PQcmdStatus returns "MOVE count".
Hmm ... some experimentation shows that 7.2 and 7.3 return a count in
the FETCH command tag, but no earlier or later version does. It's clear
though that libpq expects FETCH to have a count, see PQcmdTuples().
So I'd have to say this is something we broke in 7.4 and nobody noticed
until now. The culprit seems to be pquery.c, which is assuming that
PORTAL_UTIL_SELECT queries always return the default command tag.
regards, tom lane