On 05/04/2017 07:04 PM, Tom Lane wrote:
> Craig Ringer <craig.ringer@2ndquadrant.com> writes:
>> We're carefully maintaining this bizarre cognitive dissonance where we
>> justify the need for using this as a planner hint at the same time as
>> denying that we have a hint. That makes it hard to make progress here.
>> I think there's fear that we're setting some kind of precedent by
>> admitting what we already have.
>
> I think you're overstating the case. It's clear that there's a
> significant subset of CTE functionality where there has to be an
> optimization fence. The initial implementation basically took the
> easy way out by deeming *all* CTEs to be optimization fences. Maybe
> we shouldn't have documented that behavior, but we did. Now we're
> arguing about how much of a compatibility break it'd be to change that
> planner behavior. I don't see any particular cognitive dissonance here,
> just disagreements about the extent to which backwards compatibility is
> more important than better query optimization.
Exactly.
One thought, is that we treat a CTE in a similar way to foreign tables,
with the same set of push downs.
Joe
--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development