Big query problem - Mailing list pgsql-sql

From Tomas Berndtsson
Subject Big query problem
Date
Msg-id 80d6or9o3q.fsf@junk.nocrew.org
Whole thread Raw
In response to Function and insert  (Laurent Patureau <lpatureau@idfr.net>)
List pgsql-sql
I'm using 7.2.1, trying to run a query like this:

DELETE FROM table WHERE col1='something' AND col2 IN
('aasdoijhfoisdfsdoif','sdfsdfsdfsadfsdf', ... );

In the parantheses I have 6400 names, each about 20 characters. I'm
using libpq from C. This did not work very well, but the result was
very unexpected.

My application has several threads, each opening its own connection to
the database. The above query was run in a transaction followed by a
COMMIT. There was no error from running the above query, but instead,
it seems that the query was never run at all. As a side effect, every
other connection to the database always got:

NOTICE:  current transaction is aborted, queries ignored until end of
transaction block

when trying to run a query. I thought that the transactions in
different connections didn't have anything to do with each other.


If I limited the number of names in the failing query to 3200, it
worked well and as expected.


Is there a limit in libpq of the length of a query? And if this is
exceeded, shouldn't PQexec() give an error?


Greetings,

Tomas


pgsql-sql by date:

Previous
From: Achilleus Mantzios
Date:
Subject: FreeBSD, Linux: select, select count(*) performance
Next
From: "D'Arcy J.M. Cain"
Date:
Subject: Re: Casting Money To Numeric