I wrote: > What I had in mind in <38448.1430519...@sss.pgh.pa.us> was to convert CTEs > into plain subqueries during the prepjointree phase, either just before > or as part of the pull_up_subqueries pass (since you'd want the converted > subquery to be flattened if possible).
After looking at the code a bit, IMO the most reasonable thing to do is to include this transformation in inline_set_returning_functions(), perhaps renaming it to something like inline_srfs_and_ctes(). You could invent a separate function instead, but that would require an extra pass over the rangetable, for no particular benefit that I can see; the separate function would have to be called from *exactly* the same set of places as inline_set_returning_functions(), anyway, or it would not work right for multiple levels of query optimization. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers