Group: pgsql.interfaces


Subject: Retrieving multiple error messages via libpq
From: tgl@sss.pgh.pa.us (Tom Lane)
Date: 11/25/2007 9:55:57 PM
Jeffrey Brendecke <yakhki@yahoo.de> writes: > When I submit the following SQL statement for execution via the psql client: > 'BEGIN TRANSACTION; INSERT INTO IdOnly (id) VALUES (40); INSERT INTO IdOnly (id) VALUES (21); INSERT INTO IdOnly (id) VALUES (42); COMMIT TRANSACTION;' > I get the following error messages (this failure is expected): > ERROR: duplicate key violates unique constraint "idonly_pkey" > ERROR: current transaction is aborted, commands ignored until end of transaction block > However, when retreiving the error message via PQresultErrorMessage(), I get: > ERROR: duplicate key violates unique constraint "idonly_pkey" > How is the additional error message retrieved? It isn't, because there isn't any additional message. When you submit multiple commands in a single PQexec string (as I suspect you did), the backend abandons processing the string as soon as there's one error. psql, however, chops up its input at semicolons and submits each command as a separate PQexec. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster