On 2016/10/26 18:25, Ashutosh Bapat wrote:
Your patch calls isSubqueryExpr() recursively for every Var in the targetlist, which can be many for foreign tables with many columns. For every such Var it may need to reach upto the relation which is converted into subquery, which can as bad as reaching every base relation. So, it looks like the number of recursive calls to isSubqueryExpr() is bounded by V * N (i.e. worst case depth of the RelOptInfo tree), which can be quite costly. If use_remote_estimates is true, we do this for every intermediate relation and for every path created. That isn't very performance efficient.
In practice, the search cost would be negligible compared to the cost of explaining/executing the query.
My concern about your proposal is: it might not be worth complicating the code to solve a problem that is actually not a problem in practice.
Best regards, Etsuro Fujita -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers