On Fri, Sep 9, 2022 at 12:18 PM John Naylor <john.nay...@enterprisedb.com> wrote: > > It seems gramparse.h isn't installed now? In any case, here's a patch > to move gramparse to the backend dir and stop symlinking/ installing > gram.h.
Looking more closely at src/include/Makefile, this is incorrect -- all files in SUBDIRS are copied over. So moving gramparse.h to the backend will automatically not install it. The explicit install rule for gram.h was for vpath builds. CI builds fine. For v2 I only adjusted the commit message. I'll push in a couple days unless there are objections. -- John Naylor EDB: http://www.enterprisedb.com
From dcfe0976e6118a2c385b4473ceab76a742a6f1ff Mon Sep 17 00:00:00 2001 From: John Naylor <john.nay...@postgresql.org> Date: Fri, 9 Sep 2022 11:57:39 +0700 Subject: [PATCH v2] Move gramparse.h to src/backend/parser This header is semi-private, being used only in files related to raw parsing, so move to the backend directory where those files live. This allows removal of makefile rules that symlink gram.h to src/include/parser, since gramparse.h can now include gram.h from within the same directory. While at it, stop installing gram.h. Per suggestion from Andres Freund and Peter Eisentraut Discussion: https://www.postgresql.org/message-id/20220904181759.px6uosll6zbxcum5%40awork3.anarazel.de --- src/backend/Makefile | 7 +------ src/backend/parser/gram.y | 2 +- src/{include => backend}/parser/gramparse.h | 4 ++-- src/backend/parser/parser.c | 2 +- src/backend/parser/scan.l | 2 +- src/include/Makefile | 4 ++-- src/include/parser/.gitignore | 1 - src/tools/msvc/Install.pm | 4 ---- src/tools/pginclude/cpluspluscheck | 1 - src/tools/pginclude/headerscheck | 1 - 10 files changed, 8 insertions(+), 20 deletions(-) rename src/{include => backend}/parser/gramparse.h (97%) delete mode 100644 src/include/parser/.gitignore diff --git a/src/backend/Makefile b/src/backend/Makefile index d0d34821d5..181c217fae 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -153,12 +153,7 @@ submake-utils-headers: .PHONY: generated-headers -generated-headers: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/storage/lwlocknames.h submake-catalog-headers submake-nodes-headers submake-utils-headers - -$(top_builddir)/src/include/parser/gram.h: parser/gram.h - prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ - cd '$(dir $@)' && rm -f $(notdir $@) && \ - $(LN_S) "$$prereqdir/$(notdir $<)" . +generated-headers: $(top_builddir)/src/include/storage/lwlocknames.h submake-catalog-headers submake-nodes-headers submake-utils-headers $(top_builddir)/src/include/storage/lwlocknames.h: storage/lmgr/lwlocknames.h prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index ea33784316..82f03fc9c9 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -55,9 +55,9 @@ #include "catalog/pg_trigger.h" #include "commands/defrem.h" #include "commands/trigger.h" +#include "gramparse.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" -#include "parser/gramparse.h" #include "parser/parser.h" #include "storage/lmgr.h" #include "utils/date.h" diff --git a/src/include/parser/gramparse.h b/src/backend/parser/gramparse.h similarity index 97% rename from src/include/parser/gramparse.h rename to src/backend/parser/gramparse.h index 41b753a96c..c4726c618d 100644 --- a/src/include/parser/gramparse.h +++ b/src/backend/parser/gramparse.h @@ -11,7 +11,7 @@ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * src/include/parser/gramparse.h + * src/backend/parser/gramparse.h * *------------------------------------------------------------------------- */ @@ -26,7 +26,7 @@ * NB: include gram.h only AFTER including scanner.h, because scanner.h * is what #defines YYLTYPE. */ -#include "parser/gram.h" +#include "gram.h" /* * The YY_EXTRA data that a flex scanner allows us to pass around. Private diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c index 50227cc098..ef85d3bb68 100644 --- a/src/backend/parser/parser.c +++ b/src/backend/parser/parser.c @@ -22,7 +22,7 @@ #include "postgres.h" #include "mb/pg_wchar.h" -#include "parser/gramparse.h" +#include "gramparse.h" #include "parser/parser.h" #include "parser/scansup.h" diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 882e081aae..db8b0fe8eb 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -36,7 +36,7 @@ #include <unistd.h> #include "common/string.h" -#include "parser/gramparse.h" +#include "gramparse.h" #include "parser/parser.h" /* only needed for GUC variables */ #include "parser/scansup.h" #include "port/pg_bitutils.h" diff --git a/src/include/Makefile b/src/include/Makefile index 0b4cab9bb1..2858fdb4c8 100644 --- a/src/include/Makefile +++ b/src/include/Makefile @@ -55,7 +55,7 @@ install: all installdirs cp $(srcdir)/$$dir/*.h '$(DESTDIR)$(includedir_server)'/$$dir/ || exit; \ done ifeq ($(vpath_build),yes) - for file in catalog/schemapg.h catalog/system_fk_info.h catalog/pg_*_d.h parser/gram.h storage/lwlocknames.h utils/probes.h; do \ + for file in catalog/schemapg.h catalog/system_fk_info.h catalog/pg_*_d.h storage/lwlocknames.h utils/probes.h; do \ cp $$file '$(DESTDIR)$(includedir_server)'/$$file || exit; \ done endif @@ -79,7 +79,7 @@ uninstall: clean: rm -f utils/fmgroids.h utils/fmgrprotos.h utils/errcodes.h utils/header-stamp - rm -f parser/gram.h storage/lwlocknames.h utils/probes.h + rm -f storage/lwlocknames.h utils/probes.h rm -f catalog/schemapg.h catalog/system_fk_info.h rm -f catalog/pg_*_d.h catalog/header-stamp rm -f nodes/nodetags.h nodes/header-stamp diff --git a/src/include/parser/.gitignore b/src/include/parser/.gitignore deleted file mode 100644 index 19ea9554a0..0000000000 --- a/src/include/parser/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/gram.h diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index 5da299476e..e20661ba6e 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -618,10 +618,6 @@ sub CopyIncludeFiles 'Server headers', $target . '/include/server/', 'src/include/', 'pg_config.h', 'pg_config_ext.h', 'pg_config_os.h'); - CopyFiles( - 'Grammar header', - $target . '/include/server/parser/', - 'src/backend/parser/', 'gram.h'); CopySetOfFiles( '', [ glob("src\\include\\*.h") ], diff --git a/src/tools/pginclude/cpluspluscheck b/src/tools/pginclude/cpluspluscheck index 547f9dc5c4..78253cfbae 100755 --- a/src/tools/pginclude/cpluspluscheck +++ b/src/tools/pginclude/cpluspluscheck @@ -125,7 +125,6 @@ do test "$f" = contrib/cube/cubeparse.h && continue test "$f" = contrib/seg/segparse.h && continue test "$f" = src/backend/bootstrap/bootparse.h && continue - test "$f" = src/include/parser/gram.h && continue test "$f" = src/backend/parser/gram.h && continue test "$f" = src/backend/replication/repl_gram.h && continue test "$f" = src/backend/replication/syncrep_gram.h && continue diff --git a/src/tools/pginclude/headerscheck b/src/tools/pginclude/headerscheck index 158c99d6af..1addc52002 100755 --- a/src/tools/pginclude/headerscheck +++ b/src/tools/pginclude/headerscheck @@ -120,7 +120,6 @@ do test "$f" = contrib/cube/cubeparse.h && continue test "$f" = contrib/seg/segparse.h && continue test "$f" = src/backend/bootstrap/bootparse.h && continue - test "$f" = src/include/parser/gram.h && continue test "$f" = src/backend/parser/gram.h && continue test "$f" = src/backend/replication/repl_gram.h && continue test "$f" = src/backend/replication/syncrep_gram.h && continue -- 2.36.1