Re: [GENERAL] Enforcing Parameterised Nested Loop Join Order for Foreign Table Joins

2013-03-24 Thread Tom Lane
Adam Zegelin writes: > On 19/03/2013, at 12:40 PM, Tom Lane wrote: >> In this particular case, it won't generate a cross-product join of l1 >> and l2 because there's a heuristic that says that's unlikely to be a >> good idea. > Is this heuristic a tuneable parameter, or something that would requ

Re: [GENERAL] Enforcing Parameterised Nested Loop Join Order for Foreign Table Joins

2013-03-24 Thread Adam Zegelin
Thanks for your assistance Tom. On 19/03/2013, at 12:40 PM, Tom Lane wrote: > I think you missed my point: you should not be insisting on a maximal > set of required outer rels. I’ve started generating multiple paths for the web services that support it, which works great. > In this particula

Re: [GENERAL] Enforcing Parameterised Nested Loop Join Order for Foreign Table Joins

2013-03-18 Thread Tom Lane
Adam Zegelin writes: > My path generation logic seems to work: > baserel->cheapest_parameterized_paths = ( >{FOREIGNPATH >:pathtype 120 >:parent_relids (b 3) >:required_outer (b 1 2) >:rows 500 >:startup_cost 0.00 >:total_cost 0.00 >:pathkeys <> >:fdw_private <

Re: [GENERAL] Enforcing Parameterised Nested Loop Join Order for Foreign Table Joins

2013-03-18 Thread Adam Zegelin
Tom, Thank you for your prompt reply. Your advice has pointed me in the right direction. I now have the wrapper identifying columns that are inputs to the web service, and thus parameterisable. The ec_classes, left_join_clauses and right_join_clauses trees are scanned for Var exprs that match

Re: [GENERAL] Enforcing Parameterised Nested Loop Join Order for Foreign Table Joins

2013-03-17 Thread Tom Lane
Adam Zegelin writes: > Some service endpoints have no concept of unqualified queries. In the example > above, a ‘sequence scan’ of Bing is a not possible. In that case, you shouldn't be generating such a path. But keep in mind that this may lead to failure to produce any plan at all for som