Re: pgsql: Merge catalog/pg_foo_fn.h headers back into pg_foo.h headers.

Julien Rouhaud <rjuju123@gmail.com>

From: Julien Rouhaud <rjuju123@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael@paquier.xyz>, Postgres hackers <pgsql-hackers@postgresql.org>
Date: 2018-04-10T17:27:27Z
Lists: pgsql-hackers
On Tue, Apr 10, 2018 at 6:58 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Well, the question that's bothering me is how come "make check" in
> an external build doesn't try to execute the temp-install rule before
> printing that error message.  Experimentation shows that it doesn't,
> but it sure looks to me like it should: there's nothing conditional
> about the "check: temp-install" dependency in Makefile.global.  And
> none of the three if-guards in the temp-install rule itself should
> prevent this, so what is preventing it?  I don't see it.

I just checked, and for the record the second rule (ifneq
($(abs_top_builddir),) is actually preventing it.  On top of
Makefile.global:

# Set top_srcdir, srcdir, and VPATH.
ifdef PGXS
top_srcdir = $(top_builddir)
[...]
else # not PGXS
[...]
abs_top_builddir = @abs_top_builddir@
[...]
endif # not PGXS

>
> For this reason, I thought that adding NO_TEMP_INSTALL would be a good
> safety factor in case somebody changes/breaks whatever unobvious
> thing is keeping this from failing, and so I went ahead and did it.

It makes sense.  Thanks for correcting and pushing!


Commits

  1. Fix pgxs.mk to not try to build generated headers in external builds.

  2. Fix partial-build problems introduced by having more generated headers.

  3. Further cleanup of client dependencies on src/include/catalog headers.

  4. Merge catalog/pg_foo_fn.h headers back into pg_foo.h headers.

  5. Switch client-side code to include catalog/pg_foo_d.h not pg_foo.h.