Re: PGStream synchronization - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: PGStream synchronization
Date
Msg-id 4A946B7A.60408@opencloud.com
Whole thread Raw
In response to Re: PGStream synchronization  (Maciek Sakrejda <msakrejda@truviso.com>)
Responses Re: PGStream synchronization  (Maciek Sakrejda <msakrejda@truviso.com>)
List pgsql-jdbc
Maciek Sakrejda wrote:

> I'm not that familiar with the FEBE protocol (I'll look into this as
> well), but we don't need to cancel regular queries explicitly, right?

You can do query cancellation via a separate connection, but that's
really about halting long-running queries while preserving your
connection which is not really what we're after here. All that really
matters is getting the Terminate in at an appropriate point in the
stream so that the backend knows it's a deliberate shutdown and doesn't
complain about an unexpected-client-EOF.

> The Terminate message is always valid, except in COPY mode? If that's
> the case, we only need to ensure that the various PGStream messages
> are sent atomically (which is currently *not* the case in the case of
> Terminate), and handle COPY specially (by issuing CopyFail followed by
> Terminate). I'm happy to start work on a patch if we find an approach
> we agree on.

Right, so long as you get the atomicity correct I think that will work.
This will probably require more finegrained synchronization since
currently there's effectively one big lock that's held for the entire
duration of the query, which doesn't work so well here if you want
close() to interrupt any ongoing operation in a timely fashion.

-O

pgsql-jdbc by date:

Previous
From: Maciek Sakrejda
Date:
Subject: Re: PGStream synchronization
Next
From: Maciek Sakrejda
Date:
Subject: Re: PGStream synchronization