Re: pqgetresultset problem

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: "P(dot)Harikrishnan" <harikrishnan(at)midascomm(dot)com>
Cc: Postgresql Novice List <pgsql-novice(at)postgresql(dot)org>
Subject: Re: pqgetresultset problem
Date: 2003-08-13 15:13:47
Message-ID: 20030813080928.Q48694-100000@megazone.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Wed, 13 Aug 2003, P.Harikrishnan wrote:

> Hi all,
> I am using postgresql 7.1.3 and a client using libpq.
> I am executing a statement with muliple SQL commands semicolon
> seperated.
> If any one of the query in between fails, pqGetResultset returns
> NULL on the failed query. So i am unable to process the rest of the
> queries.
> Also the queries which were before the failed query, which were
> successful, were also not commited to the database.
>
> (eg) query1;query2;query3;query4
>
> If query1 is successful and query2 fails, the pqGetResultset returns
> NULL on query2. So my client comes out of while (pqGetResultSet). The
> query1 which was successful was also not commited to the database.
>
> If i run the same from psql client, the query2 alone fails, the rest
> other are inserted to the database.

From the current libpq docs:

It is allowed to include multiple SQL commands (separated by semicolons)
in the command string. Multiple queries sent in a single
<function>PQexec</> call are processed in a single transaction, unless
there are explicit BEGIN/COMMIT commands included in the query string to
divide it into multiple transactions. Note however that the returned
<structname>PGresult</structname> structure describes only the result of
the last command executed from the string. Should one of the commands
fail, processing of the string stops with it and the returned
<structname>PGresult</structname> describes the error condition.

I think psql separates the query at the semicolons before passing it to
the database. If you want psql's behavior you should probably do the
same.

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Harry Broomhall 2003-08-13 15:35:54 How to easily spot Foreign keys
Previous Message P.Harikrishnan 2003-08-13 13:55:20 pqgetresultset problem