Jim Finnerty <jfinn...@amazon.com> writes: > +1, adding that sort of structure to Cost would get rejected out of hand. > however, having a 'disabled' bit be part of the cost structure is something > that I would support. This has been discussed previously, but even adding > one bit to Cost doesn't have everyone's support. The purpose of a disabled > bit would be to distinguish plans that had no disable_cost added to them > from plans that did so that the planner can choose the minimum cost > non-disabled plan, if any such plan exists, or choose the minimum cost plan > otherwise. A disable count could be used, but even a bool would probably > suffice.
If we did go that route, I think a disable count would be the right thing. It wouldn't take up any more space than a bool, probably, once you account for padding overhead. And the code impact in hotspots like add_path would be just about the same too. The advantage of a count is that, for example, if you have enable_seqscan off then a path containing three seqscans could be considered inferior to one with two; but if we have only a bool then we can't tell the difference. (Having said that, I'm still about -0.5 or so on the idea. But if we do it, we should do a count.) regards, tom lane