Don't include genam.h from execnodes.h and relscan.h anymore.
authorAndres Freund <andres@anarazel.de>
Tue, 15 Jan 2019 01:02:12 +0000 (17:02 -0800)
committerAndres Freund <andres@anarazel.de>
Tue, 15 Jan 2019 01:02:12 +0000 (17:02 -0800)
commit0944ec54de389b4b8a471ca1f40f1b9d81de1f30
tree10c8f7e4fa3659c96caad6f6bb3e3f4c7a0d1d7d
parent774a975c9a5903d271a727a260efd8c31125b9d6
Don't include genam.h from execnodes.h and relscan.h anymore.

This is the genam.h equivalent of 4c850ecec649c (which removed
heapam.h from a lot of other headers).  There's still a few header
includes of genam.h, but not from central headers anymore.

As a few headers are not indirectly included anymore, execnodes.h and
relscan.h need a few additional includes. Some of the depended on
types were replacable by using the underlying structs, but e.g. for
Snapshot in execnodes.h that'd have gotten more invasive than
reasonable in this commit.

Like the aforementioned commit 4c850ecec649c, this requires adding new
genam.h includes to a number of backend files, which likely is also
required in a few external projects.

Author: Andres Freund
Discussion: https://postgr.es/m/20190114000701.y4ttcb74jpskkcfb@alap3.anarazel.de
22 files changed:
src/backend/access/heap/heapam.c
src/backend/access/index/genam.c
src/backend/bootstrap/bootstrap.c
src/backend/catalog/dependency.c
src/backend/catalog/heap.c
src/backend/catalog/indexing.c
src/backend/catalog/objectaddress.c
src/backend/commands/analyze.c
src/backend/commands/constraint.c
src/backend/commands/extension.c
src/backend/commands/matview.c
src/backend/commands/typecmds.c
src/backend/executor/execCurrent.c
src/backend/executor/execIndexing.c
src/backend/executor/execReplication.c
src/backend/executor/nodeBitmapIndexscan.c
src/backend/executor/nodeIndexonlyscan.c
src/backend/optimizer/plan/planner.c
src/backend/utils/init/postinit.c
src/include/access/relscan.h
src/include/executor/nodeIndexscan.h
src/include/nodes/execnodes.h