Re: JDBC causing the connection to close after executing a COPY command - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: JDBC causing the connection to close after executing a COPY command
Date
Msg-id Pine.BSO.4.64.0712131616360.2084@leary.csoft.net
Whole thread Raw
In response to Re: JDBC causing the connection to close after executing a COPY command  (Altaf Malik <mmalik_altaf@yahoo.com>)
Responses Re: JDBC causing the connection to close after executing a COPY command
Re: JDBC causing the connection to close after executing a COPY command
List pgsql-jdbc

On Thu, 13 Dec 2007, Altaf Malik wrote:

> I debugged little more and found that this is not because of incomplete
> copy support. When a response to any of the copy operations is received,
> JDBC reads next few bytes to ignore the response. But unfortunately
> driver reads extra four bytes which is the RFQ message so the RFQ
> message gets corrupted and IOException is thrown considering it as an
> unknown packet.

Good catch.

> I am attaching a patch that fixes this issue and driver works smoothly
> even after giving the error on copy response.
>

Sort of.  In the case of copying data from the server, if you do have a
large table, you'll generate a SQLException for every row of the copy
result which isn't great, but I guess it's better than failing completely.
Trying to copy out a single column table of 100k integers took about seven
minutes and 150 MB of memory here.

Also, it doesn't work for copying data to the server.  In that case the
server is sitting waiting for data and the driver is waiting for the
server and nothing happens.  That was the case before, so this is no
worse.

Do you have plans to work on this further or shall I apply just this minor
improvement?

Kris Jurka

pgsql-jdbc by date:

Previous
From: Tom Duffey
Date:
Subject: Re: Slow query after upgrades
Next
From: "Guillaume Smet"
Date:
Subject: Re: Slow query after upgrades