On Sun, Apr 30, 2017 at 11:54:48PM +0200, Tomas Vondra wrote: > On 04/30/2017 06:28 AM, Tom Lane wrote: > > Craig Ringer <craig.rin...@2ndquadrant.com> writes: > > > - as you noted, it is hard to decide when it's worth inlining vs > > > materializing for CTE terms referenced more than once. > > > > [ raised eyebrow... ] Please explain why the answer isn't trivially > > "never". > > > > There's already a pretty large hill to climb here in the way of > > breaking peoples' expectations about CTEs being optimization > > fences. Breaking the documented semantics about CTEs being > > single-evaluation seems to me to be an absolute non-starter. > > > > I'm not sure that's a universal expectation, though. I know there > are people who actually do rely on that intentionally, no doubt > about that. And we'd nee to make it work for them. > > But I keep running into people who face serious performance issues > exactly because not realizing this, and using CTEs as named > subqueries. And when I tell them "optimization fence" they react > "Whaaaaaaat?" > > If I had to make up some numbers, I'd say the "Whaaaaat?" group is > about 10x the group of people who intentionally rely on CTEs being > optimization fences.
I suspect you're off by at least a couple of orders of magnitude here, which make this even more important to deal with. Best, David. -- David Fetter <david(at)fetter(dot)org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david(dot)fetter(at)gmail(dot)com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers