From: | Magnus Hagander <magnus(at)hagander(dot)net> |
---|---|
To: | David Fetter <david(at)fetter(dot)org> |
Cc: | Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>, rsmogura(at)softperience(dot)eu, PG Hackers <pgsql-hackers(at)postgresql(dot)org>, PostgreSQL JDBC List <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: [JDBC] Support for JDBC setQueryTimeout, et al. |
Date: | 2010-10-12 18:03:29 |
Message-ID: | AANLkTi=m7tzv7RzCmqD6ARWm_QWbg90Jmd0uTkosiZo4@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-jdbc |
On Tue, Oct 12, 2010 at 17:55, David Fetter <david(at)fetter(dot)org> wrote:
> On Tue, Oct 12, 2010 at 10:37:00AM -0500, Kevin Grittner wrote:
>> David Fetter <david(at)fetter(dot)org> wrote:
>> > Is there something incomplete about the ones I sent, and if so,
>> > what?
>>
>> Well, I'm still curious why it was necessary to modify the server
>> side to implement an interface feature for which everything needed
>> seems to be present on the client side.
>
> Not everything is.
>
> Let's imagine you have a connection pooler with two clients, A and B.
> A calls setQueryTimeout, then starts a query, which terminates in
> time, but dies before handling it. B connects to the pool, gets A's
> connection, and finds a statement_timeout that's not the default, even
> though only A's single query was supposed to have that
> statement_timeout. This is not a situation that can be resolved
> without being able to set a timer *on the server side*.
Sure it can. The connection pooler just needs to issue a RESET ALL
statement when it hands over a connection from one client to another.
Isn't that what for example pgbouncer does - at least when configured
per instructions?
Also, doesn't this affect *all* settings, not just timeout, if it
doesn't? Imagine client A executing a SET datestyle for example.
AFAICS, any connection pooler that *doesn't* issue a reset between
handing this around is broken, isn't it?
>> If so, we should probably have an implementation in some other
>> interface to confirm that the server-side support fits. If not, why
>> touch the server side code at all?
>
> See above.
>
> While I'd *like* to put in a whole infrastructure for setting GUCs on
> a per-statement basis, I don't believe that we need to get out that
> giant sledgehammer for this case, even though it's worth solving.
We don't usually put in fixes for just one out of 105 cases, do we?
--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Jesper Krogh | 2010-10-12 18:22:01 | Re: Slow count(*) again... |
Previous Message | Mladen Gogala | 2010-10-12 17:36:46 | Re: Slow count(*) again... |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-10-12 19:29:35 | Re: [JDBC] Support for JDBC setQueryTimeout, et al. |
Previous Message | Kevin Grittner | 2010-10-12 16:23:56 | Re: [JDBC] Support for JDBC setQueryTimeout, et al. |