mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
From: Oliver Elphick <olly@lfix.co.uk>
If PQfn() receives NOTICEs from the backend, it fails because there is no provision to deal with them. This patch (supplied by Anders Hammarquist <iko@netg.se> to me as Debian maintainer of postgresql) cures the problem:
This commit is contained in:
parent
23c0471007
commit
a9ed49d5b5
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.48 1998/03/15 08:11:11 scrappy Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.49 1998/04/29 02:04:01 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1545,13 +1545,27 @@ PQfn(PGconn *conn,
|
||||
}
|
||||
pqFlush(pfout, pfdebug);
|
||||
|
||||
id = pqGetc(pfin, pfdebug);
|
||||
if (id != 'V')
|
||||
while ((id = pqGetc(pfin, pfdebug)) != 'V')
|
||||
{
|
||||
if (id == 'E')
|
||||
{
|
||||
pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, pfdebug);
|
||||
}
|
||||
else if (id == 'N')
|
||||
{
|
||||
/* print notice and go back to processing return
|
||||
values */
|
||||
if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH,
|
||||
pfin, pfdebug) == 1)
|
||||
{
|
||||
sprintf(conn->errorMessage,
|
||||
"Notice return detected from backend, but "
|
||||
"message cannot be read");
|
||||
}
|
||||
else
|
||||
fprintf(stderr, "%s\n", conn->errorMessage);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
sprintf(conn->errorMessage,
|
||||
"PQfn: expected a 'V' from the backend. Got '%c' instead",
|
||||
|
Loading…
Reference in New Issue
Block a user