Some infrastructure changes for the upcoming auto-explain contrib module:
Tom Lane <tgl@sss.pgh.pa.us>
Some infrastructure changes for the upcoming auto-explain contrib module: * Refactor explain.c slightly to export a convenient-to-use subroutine for printing EXPLAIN results. * Provide hooks for plugins to get control at ExecutorStart and ExecutorEnd as well as ExecutorRun. * Add some minimal support for tracking the total runtime of ExecutorRun. This code won't actually do anything unless a plugin prods it to. * Change the API of the DefineCustomXXXVariable functions to allow nonzero "flags" to be specified for a custom GUC variable. While at it, also make the "bootstrap" default value for custom GUCs be explicitly specified as a parameter to these functions. This is to eliminate confusion over where the default comes from, as has been expressed in the past by some users of the custom-variable facility. * Refactor GUC code a bit to ensure that a custom variable gets initialized to something valid (like its default value) even if the placeholder value was invalid.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/commands/explain.c | modified | +32 −14 |
| src/backend/executor/execMain.c | modified | +41 −3 |
| src/backend/tcop/pquery.c | modified | +3 −1 |
| src/backend/utils/misc/guc.c | modified | +158 −124 |
| src/include/commands/explain.h | modified | +4 −1 |
| src/include/executor/execdesc.h | modified | +4 −1 |
| src/include/executor/executor.h | modified | +11 −1 |
| src/include/utils/guc.h | modified | +35 −1 |
| src/include/utils/guc_tables.h | modified | +2 −22 |
| src/pl/plperl/plperl.c | modified | +3 −2 |