test_custom_types: Test module with fancy custom data types This commit adds a new test module called "test_custom_types", that can be used to stress code paths related to custom data type implementations.
Currently, this is used as a test suite to validate the set of fixes done in 3b7a6fa15720, that requires some typanalyze callbacks that can force very specific backend behaviors, as of: - typanalyze callback that returns "false" as status, to mark a failure in computing statistics. - typanalyze callback that returns "true" but let's the backend know that no interesting stats could be computed, with stats_valid set to "false". This could be extended more in the future if more problems are found. For simplicity, the module uses a fake int4 data type, that requires a btree operator class to be usable with extended statistics. The type is created by the extension, and its properties are altered in the test. Like 3b7a6fa15720, this module is backpatched down to v14, for coverage purposes. Author: Michael Paquier <[email protected]> Reviewed-by: Chao Li <[email protected]> Discussion: https://postgr.es/m/[email protected] Backpatch-through: 14 Branch ------ REL_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/017e4e395d0dd2593e3bcef85c6c80a868877351 Modified Files -------------- src/test/modules/Makefile | 1 + src/test/modules/meson.build | 1 + src/test/modules/test_custom_types/.gitignore | 4 + src/test/modules/test_custom_types/Makefile | 20 +++ src/test/modules/test_custom_types/README | 9 + .../expected/test_custom_types.out | 174 ++++++++++++++++++++ src/test/modules/test_custom_types/meson.build | 33 ++++ .../test_custom_types/sql/test_custom_types.sql | 104 ++++++++++++ .../test_custom_types/test_custom_types--1.0.sql | 164 +++++++++++++++++++ .../modules/test_custom_types/test_custom_types.c | 182 +++++++++++++++++++++ .../test_custom_types/test_custom_types.control | 5 + 11 files changed, 697 insertions(+)
