Re: Convert node test compile-time settings into run-time parameters

Ranier Vilela <ranier.vf@gmail.com>

From: Ranier Vilela <ranier.vf@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-05-20T11:35:57Z
Lists: pgsql-hackers
Em seg., 20 de mai. de 2024 às 04:28, Peter Eisentraut <peter@eisentraut.org>
escreveu:

> This patch converts the compile-time settings
>
>      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 effect is the same, but now you don't need to recompile in order to
> use these checks.
>
> The compile-time symbols are kept for build farm compatibility, but they
> now just determine the default value of the run-time settings.
>
> Possible concerns:
>
> - Performance?  Looking for example at pg_parse_query() and its
> siblings, they also check for other debugging settings like
> log_parser_stats in the main code path, so it doesn't seem to be a concern.
>
> - Access control?  I have these settings as PGC_USERSET for now. Maybe
> they should be PGC_SUSET?
>
> Another thought:  Do we really need three separate settings?
>
What is the use for production use?

best regards,
Ranier Vilela

Commits

  1. Convert node test compile-time settings into run-time parameters