Add non-MVCC index scan test module.

Add test_indexscan, a new test module that provides an SQL-callable
function that performs a full index scan using whatever snapshot type
the caller asks for.  Also add a set of tests that verify and document a
variety of behaviors associated with some specific snapshot type.

Preparation for an upcoming commit that will move index scan heap
fetches behind a new slot-based table AM interface.  Aside from testing
non-MVCC snapshot types, these new tests can catch bugs where an index
scan incorrectly maintains xs_heap_continue during HOT chain traversal.
Such bugs are unlikely to affect MVCC scans, which makes it hard to
write tests that detect them without relying on a custom test module.

Author: Peter Geoghegan <[email protected]>
Reviewed-by: Tomas Vondra <[email protected]>
Discussion: 
https://postgr.es/m/CAH2-Wzn%2BC%3DmAMv9aW3Skfh80JPpHKT3yM%3DDYwkrrhYyG2f%2B_vg%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f7a563ccd1233f99b3b202c6c208ee37694c8cef

Modified Files
--------------
src/test/modules/index/Makefile                |  10 ++
src/test/modules/index/expected/hot_chain.out  |  91 ++++++++++++++++
src/test/modules/index/meson.build             |  26 +++++
src/test/modules/index/sql/hot_chain.sql       |  47 ++++++++
src/test/modules/index/test_indexscan--1.0.sql |  13 +++
src/test/modules/index/test_indexscan.c        | 143 +++++++++++++++++++++++++
src/test/modules/index/test_indexscan.control  |   4 +
7 files changed, 334 insertions(+)

Reply via email to