On Mon, Jun 28, 2010 at 21:03, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> On Mon, Jun 28, 2010 at 20:45, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> I vote for #2. It's the least inconsistent --- we don't pay attention
>>> to the registry for much of anything else, do we?
>
>> Directly, no? Indirectly, we do. For every other TCP parameter
>> (because the registry controls what we'll get as the default when we
>> "just use things")
>
> Not if we make the code use the RFC values as the defaults. I'm
> envisioning the GUC assign hooks doing something like
>
> #ifdef WIN32
> if (newval == 0)
> newval = RFC-specified-default;
> #endif
Right. (I've only looked at the libpq side so far)
Also, we could avoid caling it *at all* if neither one of those
parameters is set. That'll take a bit more code (using the
unix-codepath of setsockopt() to enable keepalives at all), but it
shouldn't amount to many lines..
> so that the main GUC logic can still think that zero means "use the
> default". We're just redefining where the default comes from.
Yeah.
> This would be a change from previous behavior, but so what?
> Implementing any functionality at all here is a change from previous
> behavior on Windows. I don't have the slightest problem with saying
> "as of 9.0, set these values via postgresql.conf, not the registry".
Works for me.
-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/