Noah Misch wrote:
> On Mon, Sep 16, 2013 at 11:02:28PM -0300, Alvaro Herrera wrote:
> > relscan.h is a bit of an unfortunate header because it requires a lot of
> > other headers to compile, and is also required by execnodes.h. This
>
> Not in my copy of the source tree. execnodes.h uses the corresponding
> typedefs that appear in genam.h and heapam.h. Indeed, "find . -name '*.Po' |
> xargs grep -l relscan.h | wc -l" only locates 26 files that include relscan.h
> directly or indirectly.
Ah, I see now that I misspoke. This changeset has been dormant on my
repo for a while, so I confused the detail of what it is about. The
real benefit of this change is to eliminate indirect inclusion of
genam.h and heapam.h. The number of indirect inclusions of each of them
is: HEAD with patch
heapam.h 219 118
genam.h 226 121
> -1 on header restructuring in the absence of noteworthy compile-time benchmark
> improvements. Besides the obvious benchmark of full-build time, one could
> exercise the benefit of fewer header dependencies by modelling the series of
> compile times from running "git pull; make" at each commit for the past
> several months. The latter benchmark is perhaps more favorable.
I will have a go at measuring things this way.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services