Unnecessary #include in objectaddress.h?

Started by Adam Brightwellover 10 years ago3 messages
#1Adam Brightwell
adam.brightwell@crunchydatasolutions.com
1 attachment(s)

All,

While looking at the include dependency graph for objectaddress.h:

http://doxygen.postgresql.org/objectaddress_8h.html

I saw that pg_list.h is both included and inherited (through multiple
paths) by objectaddress.h. Perhaps this doesn't matter, but I thought
I would at least bring it up and propose removing this redundant
#include from objectaddress.h.

If it makes sense to do so, I have attached a patch that removes it.

Thanks,
Adam

--
Adam Brightwell - adam.brightwell@crunchydatasolutions.com
Database Engineer - www.crunchydatasolutions.com

Attachments:

objectaddress-include-cleanup.patchtext/x-patch; charset=US-ASCII; name=objectaddress-include-cleanup.patchDownload
diff --git a/src/include/catalog/objectaddress.h b/src/include/catalog/objectaddress.h
new file mode 100644
index 37808c0..432cbe8
*** a/src/include/catalog/objectaddress.h
--- b/src/include/catalog/objectaddress.h
***************
*** 13,19 ****
  #ifndef OBJECTADDRESS_H
  #define OBJECTADDRESS_H
  
- #include "nodes/pg_list.h"
  #include "storage/lock.h"
  #include "utils/acl.h"
  #include "utils/relcache.h"
--- 13,18 ----
#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Adam Brightwell (#1)
Re: Unnecessary #include in objectaddress.h?

Adam Brightwell wrote:

All,

While looking at the include dependency graph for objectaddress.h:

http://doxygen.postgresql.org/objectaddress_8h.html

I saw that pg_list.h is both included and inherited (through multiple
paths) by objectaddress.h. Perhaps this doesn't matter, but I thought
I would at least bring it up and propose removing this redundant
#include from objectaddress.h.

I wondered whether to bother about this kind of thing for a while. It
doesn't have any practical impact immediately, because obviously
pg_list.h is still included indirectly by objectaddress.h (via lock.h in
this case IIRC). If we made some restructuring that caused the other
header not to include pg_list.h anymore, that would make objectaddress.h
broken -- unless objectaddress.h itself no longer needed pg_list.h.

We've had in previous rounds whole iterations on a "pgrminclude" script
that does this kind of thing, but the breakage after each such run is
large.

All in all, I wouldn't bother unless there is an actual change.

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Adam Brightwell
adam.brightwell@crunchydatasolutions.com
In reply to: Alvaro Herrera (#2)
Re: Unnecessary #include in objectaddress.h?

I wondered whether to bother about this kind of thing for a while. It
doesn't have any practical impact immediately, because obviously
pg_list.h is still included indirectly by objectaddress.h (via lock.h in
this case IIRC). If we made some restructuring that caused the other
header not to include pg_list.h anymore, that would make objectaddress.h
broken -- unless objectaddress.h itself no longer needed pg_list.h.

We've had in previous rounds whole iterations on a "pgrminclude" script
that does this kind of thing, but the breakage after each such run is
large.

All in all, I wouldn't bother unless there is an actual change.

Understood. Thanks.

-Adam

--
Adam Brightwell - adam.brightwell@crunchydatasolutions.com
Database Engineer - www.crunchydatasolutions.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers