avoid including rel.h in execnodes.h

Started by Alvaro Herreraalmost 15 years ago3 messageshackers
Jump to latest
#1Alvaro Herrera
alvherre@2ndquadrant.com

This simple patch moves two struct declarations (Trigger and
TriggerDesc) from rel.h into a new file, reltrigger.h. The benefit is
that execnodes.h only needs to include the latter. Since execnodes.h is
very widely included, this change means there are less files that
indirectly include rel.h now, which is a good thing because rel.h
includes a ton of other files. (Of course, rel.h itself needs to
include the new header).

I also included rel.h in spi.h, because it was previously indirectly
included via execnodes.h and with this patch it would no longer be,
which is a problem because it'd cause external code to fail to compile.

--
Álvaro Herrera <alvherre@alvh.no-ip.org>

Attachments:

0001-Move-Trigger-and-TriggerDesc-structs-out-of-rel.h-in.patchapplication/octet-stream; name=0001-Move-Trigger-and-TriggerDesc-structs-out-of-rel.h-in.patchDownload+125-60
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#1)
Re: avoid including rel.h in execnodes.h

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

This simple patch moves two struct declarations (Trigger and
TriggerDesc) from rel.h into a new file, reltrigger.h. The benefit is
that execnodes.h only needs to include the latter. Since execnodes.h is
very widely included, this change means there are less files that
indirectly include rel.h now, which is a good thing because rel.h
includes a ton of other files. (Of course, rel.h itself needs to
include the new header).

OK ...

I also included rel.h in spi.h, because it was previously indirectly
included via execnodes.h and with this patch it would no longer be,
which is a problem because it'd cause external code to fail to compile.

If we think that not including rel.h unnecessarily is a good thing, then
that should surely apply to external code as well. So -1 for that bit.
It's not like we have not removed stuff from spi.h before.

regards, tom lane

#3Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#2)
Re: avoid including rel.h in execnodes.h

Excerpts from Tom Lane's message of vie jul 01 18:20:50 -0400 2011:

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

I also included rel.h in spi.h, because it was previously indirectly
included via execnodes.h and with this patch it would no longer be,
which is a problem because it'd cause external code to fail to compile.

If we think that not including rel.h unnecessarily is a good thing, then
that should surely apply to external code as well. So -1 for that bit.
It's not like we have not removed stuff from spi.h before.

Thanks, committed with that change.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support