I think there are two very large patches here. One adds checking of heapam tables to amcheck, and the other adds a binary that eases calling amcheck from the command line. I think these should be two separate patches.
I don't know what to think of a module contrib/pg_amcheck. I kinda lean towards fitting it in src/bin/scripts rather than as a contrib module. However, it seems a bit weird that it depends on a contrib module. Maybe amcheck should not be a contrib module at all but rather a new extension in src/extensions/ that is compiled and installed (in the filesystem, not in databases) by default. I strongly agree with hardening backend code so that all the crashes that Mark has found can be repaired. (We discussed this topic before[1]: we'd repair all crashes when run with production code, not all assertion crashes.) [1] https://postgr.es/m/20200513221051.GA26592@alvherre.pgsql -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services