Re: Query plan regression between CTE and views

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Query plan regression between CTE and views
Date: 2023-08-14 15:44:35
Message-ID: 30357cd7-d085-88b3-ad33-47636578911c@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 8/14/23 09:54, David Gilman wrote:
> I have a query that was originally written as a handful of CTEs out of
> convenience. It is producing a reasonable query plan because the CTE
> materialization was kicking in at an appropriate place. The CTEs
> aren't totally linear. The graph looks like this, where A, B, C and D
> are CTEs, and B -> A means B selects from A. In Graphviz format:
>
> G {
> B -> A;
> C -> A;
> C -> B;
> D -> C;
> }
>
> Out of curiosity I tried turning the query into a series of views and
> ran that query. The query plan is vastly different, there is no
> materialization and it runs much slower.
>
> My question is: is this a valid bug? I am not sure if I should expect
> the view version to find a way to materialize and produce a comparable
> query plan. Also, making a minimal test case is going to take a bit
> and I don't want to start unless this smells like a genuine bug.

What version of Postgresql?

(Also, back before, I think, v12, CTEs were optimizer fences.  You were
better using views or sub-queries.)

--
Born in Arizona, moved to Babylonia.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Ventimiglia 2023-08-14 16:36:41 How to optimize PostgreSQL Row Security Policies that involve related tables?
Previous Message Sai Teja 2023-08-14 15:29:29 Re: Fatal Error : Invalid Memory alloc request size 1236252631