Andres Freund <and...@anarazel.de> writes: > As I said, I don't think ALL is a good idea under any name. Like it > just makes no sense to have ANALYZE, SUMMARY, VERBOSE, BUFFERS, > SETTINGS, FORMAT controlled by one option, unless you call it DWIM. It's > several separate axis (query is executed or not (ANALYZE), verbosity > (SUMMARY, VERBOSE), collecting additional information (BUFFERS, TIMING), > output format).
FWIW, I find this line of argument fairly convincing. There may well be a case for rethinking just how EXPLAIN's options behave, but "ALL" doesn't seem like a good conceptual model. One idea that comes to mind is that VERBOSE could be redefined as some sort of package of primitive options, including all of the "additional information" options, with the ability to turn individual ones off again if you wanted. So for example (VERBOSE, BUFFERS OFF) would give you everything except buffer stats. We'd need a separate flag/flags to control what VERBOSE originally did, but that doesn't bother me --- it's an opportunity for more clarity of definition, anyway. I do feel that it's a good idea to keep ANALYZE separate. "Execute the query or not" is a mighty fundamental thing. I've never liked that name for the option though --- maybe we could deprecate it in favor of EXECUTE? regards, tom lane