On Tue, Mar 1, 2016 at 3:11 PM, Teodor Sigaev <teodor@sigaev.ru> wrote:
The basic point of this patch is to apply the generate-and-compare-Paths paradigm to the planning steps after query_planner(), which only covers
... > The present patch addresses this problem by inventing Path nodes to > represent every post-scan/join step
I'm really glad to see that. Separating path nodes for later steps opens a new ways to optimize queries. For first glance, consider select * from a left outer join b on a.i = b.i limit 1; Limit node could be pushed down to scan over 'a' table if b.i is unique.
This patch opens a lot of possibilities to our ongoing project on indexing subselects, which we plan to use for jsonb. Having it in 9.6 will certainly facilitate this. So, I'm +1 for this patch, even if we have to postpone 9.6 a bit. Hope, Robert, Teodor and other reviewers could help Tom with this patch.