Re: Reducing header interdependencies around heapam.h et al.

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org
Date: 2019-01-14T02:54:58Z
Lists: pgsql-hackers
On 2019-Jan-13, Andres Freund wrote:

> Alvaro, you'd introduced the split of HeapScanDesc and HeapScanDescData
> being in different files (in a3540b0f657c6352) - what do you think about
> this change?  I didn't revert that split, but I think we ought to
> consider just relying on a forward declared struct in heapam.h instead,
> this split is pretty confusing and seems to lead to more interdependence
> in a lot of cases.

I wasn't terribly happy with that split, so I'm not opposed to doing
things differently.  For your consideration, I've had this patch lying
around for a few years, which (IIRC) reduces the exposure of heapam.h by
splitting relscan.h in two.  This applies on top of dd778e9d8884 (and as
I recall it worked well there).

I'll try to have a look at your patch tomorrow.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Don't include genam.h from execnodes.h and relscan.h anymore.

  2. Make naming of tupdesc related structs more consistent with the rest of PG.

  3. Remove too generically named MissingPtr typedef.

  4. Don't include heapam.h from others headers.