Обсуждение: PQgetResultSet Problem
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.
I am expecting the same behaviour as that of psql.
Plz somebody help me in this regard.
TIA.
Regards,
Deepa
Deepa K <kdeepa@midascomm.com> writes:
> 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.
That's what it's supposed to do.
> Also the queries which were before the failed query, which were
> successful, were also not commited to the database.
Likewise.
If this is not the behavior you want, then submit the commands
separately.
regards, tom lane
Thanks Tom. But we run a set of commands in psql command line, if any one of query fails, other commands gets executed. Why this is possible in psql and not using application. TIA Deepa. K Tom Lane wrote: > Deepa K <kdeepa@midascomm.com> writes: > > 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. > > That's what it's supposed to do. > > > Also the queries which were before the failed query, which were > > successful, were also not commited to the database. > > Likewise. > > If this is not the behavior you want, then submit the commands > separately. > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 8: explain analyze is your friend
Deepa K <kdeepa@midascomm.com> writes:
> But we run a set of commands in psql command line, if any one of query
> fails, other commands gets executed. Why this is possible in psql and
> not using application.
psql splits your input at semicolons, and ships each command to the
backend in a separate PQexec. You're wasting your time suggesting
that we should change this behavior in either PQexec or psql --- we'd
break far too many applications for far too little gain.
regards, tom lane