Anthonin Bonnefoy <anthonin.bonne...@datadoghq.com> writes: > I have a prototype for an ALL_CANDIDATES option for EXPLAIN. The goal > of this option is to print all plan candidates instead of only the > cheapest plan. It will output the plans from the most expensive at the > top to the cheapest.
This doesn't seem feasible at all to me. If we don't prune plans fairly aggressively at lower plan levels, we'll have a combinatorial explosion in the amount of work the planner has to do. Have you tried this on even slightly complex plans --- say, a dozen-way join? I do not think you'll like the runtime, the amount of memory consumed, or the verboseness of the output. (I wonder how it interacts with GEQO, too.) regards, tom lane