Re: how to gate experimental features (SQL/PGQ)
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Matheus Alcantara <matheusssilv97@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Date: 2026-01-15T08:53:10Z
Lists: pgsql-hackers
> On 14 Jan 2026, at 22:15, Matheus Alcantara <matheusssilv97@gmail.com> wrote: > > On 14/01/26 17:57, Daniel Gustafsson wrote: >>> On 13 Jan 2026, at 15:16, Peter Eisentraut <peter@eisentraut.org> wrote: >>> 2) A run-time setting (GUC) like experimental_pgq = on/off. This would be checked in the relevant DDL (CREATE/ALTER/DROP) commands as well as the GRAPH_TABLE function. So without that you couldn't do anything with it, but for example pg_dump and psql and ecpg preproc would still work and the system catalogs exist. Default to off for one release (subject to change). >> Such a GUC would IMHO only make sense if we remove it when we promote the >> feature, but removing a GUC also comes with a cost for anyone having baked it >> into their scripts etc. If we feel confident enough that a patch satisfies the >> security requirements to merge it, I think we should make it available. > Instead of having a GUC for each potential experimental feature we could have just a single GUC with a list of experimental features that are enabled. > > SET enable_experimental_features = "foo,bar,baz"; That is an option to avoid the need to retire/remove GUC's. Such a format makes it harder to know which experimental features which are disabled when querying pg_settings or looking at it in other ways where the postgresql.conf comment isn't immediately visible, but that might not be a big concern. -- Daniel Gustafsson