Tom Lane <tgl@sss.pgh.pa.us> writes:
> > The first one is that we are getting unexpected retun values from
> > pgresultstatus after calling pgexec, a value of PGRES_TUPLES_OK. The
> > thing is that we're not sending a SELECT, just UPDATES, INSERTS and
> > DELETES. My understanding is that none of those return tuples.
>
> They don't. I think you must have some kind of multithreading bug
> on the client side (whether it's in libpq or your code is hard to say).
> A quick look at libpq's source shows that it can only generate
> PGRES_TUPLES_OK after seeing a 'T' (row descriptor) message from the
> backend, and the backend will surely not send such a thing except for
> SELECT or FETCH.
This is what we expected, but I wasn't familiar enough with the
details of the backend protocol to know how significant these symptoms
were. We've put locks on each database connection, so there should be
only one query running on a connection at a time. We've been running
it a few hours on a loaded application without any issues, so I think
it's cleared up, but I'm not prepared to give it a clean slate for
another day or so.
On that note, what do I need to do to get UncommonSQL listed in the
postgres interfaces page on the website?
UncommonSQL, available at http://alpha.onshore.com/lisp-software, is
both a functional and object-oriented interface to relational
databases for Common Lisp. It includes support for PostgreSQL, as
well as Oracle. It presently works in CMUCL, but should be portable
to other runtimes.
--
Craig Brozefsky <craig@red-bean.com>
In the rich man's house there is nowhere to spit but in his face -- Diogenes