Обсуждение: FETCH from scroll cursor does not return count in libpq PQcmdStatus

Поиск
Список
Период
Сортировка

FETCH from scroll cursor does not return count in libpq PQcmdStatus

От
"Knut P. Lehre"
Дата:
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
describedin the 8.2.1 docs. However, PQntuples returns the number of fetched rows.  If I replace the FETCH by a MOVE,
PQcmdStatusreturns "MOVE count".
 
The discussion we had on irc #postgresql suggested that this might be a bug, or have we missed some points regarding
theuse of scroll cursors?
 



Re: FETCH from scroll cursor does not return count in libpq PQcmdStatus

От
Tom Lane
Дата:
"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
describedin the 8.2.1 docs. However, PQntuples returns the number of fetched rows.  If I replace the FETCH by a MOVE,
PQcmdStatusreturns "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