Convert node test compile-time settings into run-time parameters
This converts
COPY_PARSE_PLAN_TREES
WRITE_READ_PARSE_PLAN_TREES
RAW_EXPRESSION_COVERAGE_TEST
into run-time parameters
debug_copy_parse_plan_trees
debug_write_read_parse_plan_trees
debug_raw_expression_coverage_test
They can be activated for tests using PG_TEST_INITDB_EXTRA_OPTS.
The compile-time symbols are kept for build farm compatibility, but
they now just determine the default value of the run-time settings.
Furthermore, support for these settings is not compiled in at all
unless assertions are enabled, or the new symbol
DEBUG_NODE_TESTS_ENABLED is defined at compile time, or any of the
legacy compile-time setting symbols are defined. So there is no
run-time overhead in production builds. (This is similar to the
handling of DISCARD_CACHES_ENABLED.)
Discussion: https://www.postgresql.org/message-id/flat/30747bd8-f51e-4e0c-a310-a6e2c37ec8aa%40eisentraut.org
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/a292c98d62ddc0ad681f772ab91bf68ee399cb4b
Modified Files
--------------
.cirrus.tasks.yml | 3 +-
doc/src/sgml/config.sgml | 71 +++++++++++++++++++++++++++++++++++++
src/backend/nodes/README | 9 ++---
src/backend/nodes/read.c | 12 +++----
src/backend/nodes/readfuncs.c | 4 +--
src/backend/parser/analyze.c | 44 ++++++++++++-----------
src/backend/tcop/postgres.c | 30 +++++++++-------
src/backend/utils/misc/guc_tables.c | 59 ++++++++++++++++++++++++++++++
src/include/nodes/nodes.h | 2 +-
src/include/nodes/readfuncs.h | 2 +-
src/include/pg_config_manual.h | 34 +++++++++---------
src/include/utils/guc.h | 6 ++++
12 files changed, 212 insertions(+), 64 deletions(-)