OSDN Git Service

Some infrastructure changes for the upcoming auto-explain contrib module:
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 19 Nov 2008 01:10:24 +0000 (01:10 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 19 Nov 2008 01:10:24 +0000 (01:10 +0000)
commitcd35e9d7468e8f86dd5a7d928707f4ba8cdae44d
tree0871bc92bd00e622cc567d29edf3d9a7c9b9adff
parent667685ca7da3b895fe362863c3da00b010543399
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.
src/backend/commands/explain.c
src/backend/executor/execMain.c
src/backend/tcop/pquery.c
src/backend/utils/misc/guc.c
src/include/commands/explain.h
src/include/executor/execdesc.h
src/include/executor/executor.h
src/include/utils/guc.h
src/include/utils/guc_tables.h
src/pl/plperl/plperl.c