mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
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
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
*
|
||||
* However, if restore_location_fields is true, we do restore location
|
||||
* fields from the string. This is currently intended only for use by the
|
||||
* WRITE_READ_PARSE_PLAN_TREES test code, which doesn't want to cause
|
||||
* debug_write_read_parse_plan_trees test code, which doesn't want to cause
|
||||
* any change in the node contents.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
@@ -118,7 +118,7 @@
|
||||
local_node->fldname = nullable_string(token, length)
|
||||
|
||||
/* Read a parse location field (and possibly throw away the value) */
|
||||
#ifdef WRITE_READ_PARSE_PLAN_TREES
|
||||
#ifdef DEBUG_NODE_TESTS_ENABLED
|
||||
#define READ_LOCATION_FIELD(fldname) \
|
||||
token = pg_strtok(&length); /* skip :fldname */ \
|
||||
token = pg_strtok(&length); /* get field value */ \
|
||||
|
||||
Reference in New Issue
Block a user