injection_points: Introduce runtime conditions This adds a new SQL function injection_points_set_local() that can be used to force injection points to be run only in the process where they are attached. This is handy for SQL tests to: - Detach automatically injection points when the process exits. - Allow tests with injection points to run concurrently with other test suites, so as such modules do not have to be marked with NO_INSTALLCHECK.
Currently, the only condition that can be registered is for a PID. This could be extended to more kinds later, if required, like database names/OIDs, roles, or more concepts I did not consider. Using a single function for SQL scripts is an idea from Heikki Linnakangas. Reviewed-by: Andrey Borodin Discussion: https://postgr.es/m/zfp7ids9tvrke...@paquier.xyz Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/f587338dec87d3c35b025e131c5977930ac69077 Modified Files -------------- .../injection_points/expected/injection_points.out | 77 +++++++++ .../injection_points/injection_points--1.0.sql | 11 ++ .../modules/injection_points/injection_points.c | 176 +++++++++++++++++++++ .../injection_points/sql/injection_points.sql | 20 +++ src/tools/pgindent/typedefs.list | 1 + 5 files changed, 285 insertions(+)