| From: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
|---|---|
| To: | Andreas Karlsson <andreas(at)proxel(dot)se> |
| Cc: | David Fetter <david(at)fetter(dot)org>, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Early WIP/PoC for inlining CTEs |
| Date: | 2018-10-05 00:40:05 |
| Message-ID: | 87y3bdckvu.fsf@news-spur.riddles.org.uk |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
>>>>> "Andreas" == Andreas Karlsson <andreas(at)proxel(dot)se> writes:
> On 10/03/2018 05:57 PM, David Fetter wrote:
>> Is there any meaningful distinction between "inlining," by which I
>> mean converting to a subquery, and predicate pushdown, which
>> would happen at least for a first cut, at the rewrite stage?
Yes.
Andreas> Sorry, but I do not think I understand your question. The
Andreas> ability to push down predicates is just one of the potential
Andreas> benefits from inlining.
Consider the difference between (in the absence of CTE inlining):
-- inline subquery with no optimization barrier (qual may be pushed down)
select * from (select x from y) s where x=1;
-- inline subquery with optimization barrier (qual not pushed down)
select * from (select x from y offset 0) s where x=1;
-- CTE with materialization
with s as (select x from y) select * from s where x=1;
--
Andrew (irc:RhodiumToad)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Pavel Stehule | 2018-10-05 00:54:58 | Re: snprintf assert is broken by plpgsql #option dump |
| Previous Message | Michael Paquier | 2018-10-05 00:34:42 | Re: Segfault when creating partition with a primary key and sql_drop trigger exists |