Re: JDBC causing the connection to close after executing a COPY command

From: Kris Jurka <books(at)ejurka(dot)com>
To: Altaf Malik <mmalik_altaf(at)yahoo(dot)com>
Cc: Dave Cramer <pg(at)fastcrypt(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: JDBC causing the connection to close after executing a COPY command
Date: 2007-12-13 21:31:12
Message-ID: Pine.BSO.4.64.0712131616360.2084@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Guillaume Smet 2007-12-13 21:58:10 Re: Slow query after upgrades
Previous Message Tom Duffey 2007-12-13 21:28:21 Re: Slow query after upgrades