I'm having trouble with PQsendQuery if sending medium sized queries.I already found a solution in pgsql/src/interfaces/libpq/fe-misc.c.
Everything's fine with queries up to 8190 bytes (0x1fffe), but one byte more will not work.
In this case, PQsendQuery and PQconsumeInput will return ok, but PQisBusy stays busy. How can I get around this?
Regards,
Andreas
conn->outBuffer initially has 8k size. For a successful 8190 byte execute, this contains a 'Q', the query and the terminating zero byte. If pqPutBytes() finds avail to be too small, it will first try to pqSendSome(), but this will not be good if the connection is nonblocking.
As a fix, the outbuffer is realloced to be big enough, before processing continues:
avail = Max(conn->outBufSize - conn->outCount, 0);
>>>>>
if (nbytes > avail && pqIsnonblocking(conn))
{
char *newbuf;
conn->outBufSize = conn->outBufSize - avail + nbytes;
newbuf = realloc(conn->outBuffer, conn->outBufSize);
conn->outBuffer = newbuf;
avail = conn->outBufSize - conn->outCount;
}
<<<<<
remaining = Min(avail, nbytes);pgadmin3 (to be found at http://www.pse-consulting.de/pgadmin3/pgadmin3.zip) ist linked with this patched libpq.
Regards, Andreas
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])
