Hi!
This patch introduce a dummy_index access method module, that does not do any
indexing at all, but allow to test reloptions from inside of access method
extension.
This patch is part of my bigger work on reloptions refactoring.
It came from
https://www.postgresql.org/message-id/20190220060832.GI15532%40paquier.xyz
thread where I suggested to add a "enum" reloption type, and we came to
conclusion that we need to test how this new option works for access method
created from extension (it does not work in the same way as in-core access
methods) . But we can't add this option to bloom index, so we need an index
extension that can be freely used for tests.
So I created src/test/modules/dummy_index, it does no real indexing, but it
has all types of reloptions that can be set (reloption_int, reloption_real,
reloption_bool, reloption_string and reloption_string2). It also has set of
boolean GUC variables that enables test output concerning certain reloption:
(do_test_reloption_int, do_test_reloption_real, do_test_reloption_bool and
do_test_reloption_string and do_test_reloption_string2) also set
do_test_reloptions to true to get any output at all.
Dummy index will print this output when index is created, and when record is
inserted (this needed to check if your ALTER TABLE did well)
Then you just use normal regression tests: turns on test output, sets some
reloption and check test output, that it properly reaches the access method
internals.
While writing this module I kept in mind the idea that this module can be also
used for other am-related tests, so I separated the code into two parts:
dummy_index.c has only code related to implementation of an empty access
method, and all code related to reloptions tests were stored into
direloptions.c. So in future somebody can add di[what_ever_he_wants].c whith
his own tests code, add necessary calls to dummy_index.c, create some GUC
variables, and has his own feature tested.
So I kindly ask you to review and commit this module, so I would be able to
continue my work on reloptions refactoring...
Thanks!