Hi,
It's a bit odd that syncscan.c is used by both heapam.c and tableam.c,
and provides a generic block-synchronization mechanism that other
table AMs might want to use too, but it lives under
src/backend/access/heap. It doesn't actually do anything heap
specific (beyond being block-oriented), and it's weird that tableam.c
has to include heapam.h.
Perhaps we should move the .c file under src/backend/access/table, as attached.
I suppose it's remotely possible that someone might invent
physical-order index scans, and once you have those you might sync
scans of those too, and then even table would be too specific, but
that may be a bit far fetched.