Re: Modernizing our GUC infrastructure - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Modernizing our GUC infrastructure
Date
Msg-id CA+TgmoZk37L_q8eKgsUYZ_t=Cpd4V7BUxCO=nKtDTitW980tWQ@mail.gmail.com
Whole thread Raw
In response to Re: Modernizing our GUC infrastructure  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Modernizing our GUC infrastructure
List pgsql-hackers
On Tue, Sep 6, 2022 at 1:43 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I think there's a good analogy here to temporary tables.  The SQL
> spec says that temp-table schemas are persistent and database-wide,
> but what we actually have is that they are session-local.  People
> occasionally propose that we implement the SQL semantics for that,
> but in the last twenty-plus years no one has bothered to write a
> committable patch to support it ... much less remove the existing
> behavior in favor of that, which I'm pretty sure no one would think
> is a good idea.

Well, I've thought about doing this a few times, but it's a real pain
in the neck, primarily because we store metadata that needs to be
per-instantiation in the catalog rows: relfrozenxid, relminmxid, and
the relation statistics. So I'm not sure "no one has bothered" is
quite the right way to characterize it. "no one has been able to
adequately untangle the mess" might be more accurate.

> So, is it actually a good idea to have persistent metadata for
> session variables?  I'd say that the issue is at best debatable,
> and at worst proven wrong by a couple of decades of experience.
> In what way are session variables less mutable than temp tables?

I haven't looked at that patch at all, but I would assume that
variables would have SQL types, and that we would never add GUCs with
SQL types, which seems like a pretty major semantic difference.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: SUBTRANS: Minimizing calls to SubTransSetParent()
Next
From: Christoph Berg
Date:
Subject: psql -l and locales (Re: pgsql: Add option to use ICU as global locale provider)