+1 for the configuration option. Otherwise, migration is a nightmare -- so
many CTEs were written specifically to use the "optimization fence"
behavior. The lack of such configuration options is now a "migration fence".

On Sat, Oct 19, 2019 at 2:49 AM Colin Watson <cjwat...@canonical.com> wrote:

> On Sat, Oct 19, 2019 at 05:01:04AM +0100, Andrew Gierth wrote:
> > >>>>> "Michael" == Michael Paquier <mich...@paquier.xyz> writes:
> >  > On Fri, Oct 18, 2019 at 02:21:30PM +0100, Colin Watson wrote:
> >  >> However, an alternative would be to backport the new syntax to some
> >  >> earlier versions. "WITH ... AS MATERIALIZED" can easily just be
> >  >> synonymous with "WITH ... AS" in versions prior to 12; there's no
> >  >> need to support "NOT MATERIALIZED" since that's explicitly
> >  >> requesting the new query-folding feature that only exists in 12.
> >  >> Would something like the attached patch against REL_11_STABLE be
> >  >> acceptable? I'd like to backpatch it at least as far as PostgreSQL
> >  >> 10.
> >
> >  Michael> I am afraid that new features don't gain a backpatch. This is
> >  Michael> a project policy. Back-branches should just include bug fixes.
> >
> > I do think an argument can be made for making an exception in this
> > particular case. This wouldn't be backpatching a feature, just accepting
> > and ignoring some of the new syntax to make upgrading easier.
>
> Right, this is my position too.  I'm explicitly not asking for
> backpatching of the CTE-inlining feature, just trying to cope with the
> fact that we now have to spell some particular queries differently to
> retain the performance characteristics we need for them.
>
> I suppose an alternative would be to add a configuration option to 12
> that allows disabling inlining of CTEs cluster-wide: we could then
> upgrade to 12 with inlining disabled, add MATERIALIZED to the relevant
> queries, and then re-enable inlining.  But I like that less because it
> would end up leaving cruft around in PostgreSQL's configuration code
> somewhat indefinitely for the sake of an edge case in upgrading to a
> particular version.
>
> --
> Colin Watson                                    [cjwat...@canonical.com]
>
>
>

Reply via email to