Tomas Vondra <tomas.von...@2ndquadrant.com> writes: > On Fri, Nov 01, 2019 at 09:30:52AM -0700, Jim Finnerty wrote: >> re: coping with adding disable_cost more than once >> >> Another option would be to have a 2-part Cost structure. If disable_cost is >> ever added to the Cost, then you set a flag recording this. If any plans >> exist that have no disable_costs added to them, then the planner chooses the >> minimum cost among those, otherwise you choose the minimum cost path.
> Yeah, I agree having is_disabled flag, and treat all paths with 'true' > as more expensive than paths with 'false' (and when both paths have the > same value then actually compare the cost) is probably the way forward. It would have to be a count, not a boolean --- for example, you want to prefer a path that uses one disabled SeqScan over a path that uses two. I'm with Andres in being pretty worried about the extra burden imposed on add_path comparisons. regards, tom lane