Thread: Remove utils/acl.h from catalog/objectaddress.h

Remove utils/acl.h from catalog/objectaddress.h

From
Peter Eisentraut
Date:
I noticed that catalog/objectaddress.h includes utils/acl.h for no 
apparent reason.  It turns out this used to be needed but not anymore. 
So removed it and cleaned up the fallout.  Patch attached.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment

Re: Remove utils/acl.h from catalog/objectaddress.h

From
Tom Lane
Date:
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> I noticed that catalog/objectaddress.h includes utils/acl.h for no 
> apparent reason.  It turns out this used to be needed but not anymore. 
> So removed it and cleaned up the fallout.  Patch attached.

Seems reasonable.  One thing I noticed is that if you are including
nodes/parsenodes.h explicitly in objectaddress.h, there seems little
point in the #include "nodes/pg_list.h" right beside it.

Sometime we really ought to make an effort to make our header inclusions
less of a mass of spaghetti.  But this patch needn't take on that load.

            regards, tom lane



Re: Remove utils/acl.h from catalog/objectaddress.h

From
Alvaro Herrera
Date:
On 2020-Mar-07, Peter Eisentraut wrote:

> I noticed that catalog/objectaddress.h includes utils/acl.h for no apparent
> reason.  It turns out this used to be needed but not anymore. So removed it
> and cleaned up the fallout.  Patch attached.

parser/parse_nodes.h already includes nodes/parsenodes.h, so the seeming
redundancy in places such as 

> diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
> index c27d255d8d..be63e043c6 100644
> --- a/src/include/commands/vacuum.h
> +++ b/src/include/commands/vacuum.h
> @@ -19,6 +19,7 @@
>  #include "catalog/pg_statistic.h"
>  #include "catalog/pg_type.h"
>  #include "nodes/parsenodes.h"
> +#include "parser/parse_node.h"

(and others) is not just apparent; it's also redundant in practice.  And
it's not like parse_node.h is ever going to be able not to depend on
parsenodes.h, so I would vote to remove nodes/parsenodes.h from the
headers where you're adding parser/parse_node.h.

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



Re: Remove utils/acl.h from catalog/objectaddress.h

From
Peter Eisentraut
Date:
On 2020-03-09 17:07, Alvaro Herrera wrote:
> On 2020-Mar-07, Peter Eisentraut wrote:
> 
>> I noticed that catalog/objectaddress.h includes utils/acl.h for no apparent
>> reason.  It turns out this used to be needed but not anymore. So removed it
>> and cleaned up the fallout.  Patch attached.
> 
> parser/parse_nodes.h already includes nodes/parsenodes.h, so the seeming
> redundancy in places such as
> 
>> diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
>> index c27d255d8d..be63e043c6 100644
>> --- a/src/include/commands/vacuum.h
>> +++ b/src/include/commands/vacuum.h
>> @@ -19,6 +19,7 @@
>>   #include "catalog/pg_statistic.h"
>>   #include "catalog/pg_type.h"
>>   #include "nodes/parsenodes.h"
>> +#include "parser/parse_node.h"
> 
> (and others) is not just apparent; it's also redundant in practice.  And
> it's not like parse_node.h is ever going to be able not to depend on
> parsenodes.h, so I would vote to remove nodes/parsenodes.h from the
> headers where you're adding parser/parse_node.h.

OK, committed with your and Tom's changes.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services