Have we tried to treat CTE as SubQuery in planner?

From: Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Have we tried to treat CTE as SubQuery in planner?
Date: 2020-11-14 06:03:57
Message-ID: CAKU4AWqSbsHBwYopeDRka96wDxHM8Ftuj2myVBFipSwB1eL_bA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi:

Take the following example:

insert into cte1 select i, i from generate_series(1, 1000000)i;
create index on cte1(a);

explain
with cte1 as (select * from cte1)
select * from c where a = 1;

It needs to do seq scan on the above format, however it is pretty
quick if we change the query to
select * from (select * from cte1) c where a = 1;

I know how we treat cte and subqueries differently currently,
I just don't know why we can't treat cte as a subquery, so lots of
subquery related technology can apply to it. Do we have any
discussion about this?

Thanks

--
Best Regards
Andy Fan

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-11-14 06:14:38 Re: Have we tried to treat CTE as SubQuery in planner?
Previous Message Alexander Korotkov 2020-11-14 05:30:51 Re: Supporting = operator in gin/gist_trgm_ops