Simon Riggs <[EMAIL PROTECTED]> writes:
> +     if (removable && 
> +             joinrel->cheapest_total_path < keeprel->cheapest_total_path)
> +     {
> +             elog(LOG, "join removed");
> +             joinrel->pathlist = keeprel->pathlist;
> +             joinrel->joininfo = keeprel->baserestrictinfo;
> +     }
> + }

On third thought: if you think that the join paths could possibly win,
then the correct coding here is something like

        foreach(path, keeprel->pathlist)
                add_path(joinrel, ...)

The reason is that it's not an all-or-nothing choice: some of the paths
might offer cheaper startup cost, or present a useful sort order.
So just present them as available alternatives and let add_path sort it
out.

                        regards, tom lane

-- 
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches

Reply via email to