Move contrib/spi testing from core regression tests to contrib/spi.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 8 Apr 2025 23:12:03 +0000 (19:12 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 8 Apr 2025 23:12:03 +0000 (19:12 -0400)
commitb1720fe63f344adeb8a75b22e8f31b127c814f35
tree3b8d6fc2bad1ccd6b079c1c5b1b0f443876d5371
parentc57971034e69ca5705ac2be893a80ea82aca978b
Move contrib/spi testing from core regression tests to contrib/spi.

It's weird to have the core regression tests depending on contrib
code, and coverage testing shows that those test queries add nothing
to the core-code coverage of the core tests.  So pull those test bits
out and put them into ordinary test scripts inside contrib/spi/,
making that more like other contrib modules.

Aside from being structurally nicer, anything we can take out of the
core tests (which are executed multiple times per check-world run)
and put into tests executed only once should be a win.  It doesn't
look like this change will buy a whole lot of milliseconds, but a
cycle saved is a cycle earned.

Also, there is some discussion around possibly removing refint and/or
autoinc altogether.  I don't know if that will happen, but we'd
certainly need to decouple them from the core tests to do so.

The tests for autoinc were quite intertwined with the undocumented
"ttdummy" trigger in regress.c.  That made the tests very hard to
understand and contributed nothing to autoinc's testing either.
So I just deleted ttdummy and rewrote the autoinc tests without it.

I realized while doing this that the description of autoinc in
the SGML docs is not a great description of what the function
actually does, so the patch includes some updates to those docs.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Discussion: https://postgr.es/m/3872677.1744077559@sss.pgh.pa.us
17 files changed:
contrib/spi/.gitignore [new file with mode: 0644]
contrib/spi/Makefile
contrib/spi/expected/autoinc.out [new file with mode: 0644]
contrib/spi/expected/refint.out [new file with mode: 0644]
contrib/spi/meson.build
contrib/spi/sql/autoinc.sql [new file with mode: 0644]
contrib/spi/sql/refint.sql [new file with mode: 0644]
doc/src/sgml/contrib-spi.sgml
src/test/regress/GNUmakefile
src/test/regress/expected/alter_table.out
src/test/regress/expected/test_setup.out
src/test/regress/expected/triggers.out
src/test/regress/meson.build
src/test/regress/regress.c
src/test/regress/sql/alter_table.sql
src/test/regress/sql/test_setup.sql
src/test/regress/sql/triggers.sql