From cf7db0a146391e1cf703fc024a2561f7664a26de Mon Sep 17 00:00:00 2001 From: Zsolt Parragi Date: Sat, 14 Mar 2026 11:07:36 +0000 Subject: [PATCH 1/3] Unify header installation using shared list files Both make and meson builds now read the same list files (public_headers.list, internal_headers.list, server_headers.list) to determine which source-tree headers to install. This eliminates the previous divergence where make used *.h globs and meson used install_subdir(), and provides a single source of truth for installed headers. Generated headers remain handled explicitly by each build system. The vpath_build conditional in catalog/Makefile is removed since the parent Makefile no longer uses globs that would implicitly catch generated headers in non-vpath builds. Similarly contrib headers also remain as-is, as those are all explicitly listed and unifying them into a single common list wouldn't align well with the contrib concept. --- src/include/Makefile | 84 +-- src/include/catalog/Makefile | 3 - src/include/internal_headers.list | 11 + src/include/meson.build | 138 ++--- src/include/public_headers.list | 12 + src/include/server_headers.list | 856 ++++++++++++++++++++++++++++++ 6 files changed, 936 insertions(+), 168 deletions(-) create mode 100644 src/include/internal_headers.list create mode 100644 src/include/public_headers.list create mode 100644 src/include/server_headers.list diff --git a/src/include/Makefile b/src/include/Makefile index ac673f4cf17..f2bed2578a5 100644 --- a/src/include/Makefile +++ b/src/include/Makefile @@ -12,94 +12,52 @@ subdir = src/include top_builddir = ../.. include $(top_builddir)/src/Makefile.global +PUBLIC_HEADERS := $(shell grep -v '^\#' $(srcdir)/public_headers.list | grep -v '^$$') +INTERNAL_HEADERS := $(shell grep -v '^\#' $(srcdir)/internal_headers.list | grep -v '^$$') +SERVER_HEADERS := $(shell grep -v '^\#' $(srcdir)/server_headers.list | grep -v '^$$') all: pg_config.h pg_config_os.h -# Subdirectories containing installable headers -SUBDIRS = \ - access \ - archive \ - bootstrap \ - catalog \ - commands \ - common \ - datatype \ - executor \ - fe_utils \ - foreign \ - jit \ - lib \ - libpq \ - mb \ - nodes \ - optimizer \ - parser \ - partitioning \ - postmaster \ - regex \ - replication \ - rewrite \ - statistics \ - storage \ - tcop \ - snowball \ - snowball/libstemmer \ - tsearch \ - tsearch/dicts \ - utils \ - port \ - port/atomics \ - port/win32 \ - port/win32_msvc \ - port/win32_msvc/sys \ - port/win32/arpa \ - port/win32/netinet \ - port/win32/sys \ - portability - -# Install all headers install: all installdirs # These headers are needed by the public headers of the interfaces. - $(INSTALL_DATA) $(srcdir)/postgres_ext.h '$(DESTDIR)$(includedir)' - $(INSTALL_DATA) $(srcdir)/libpq/libpq-fs.h '$(DESTDIR)$(includedir)/libpq' + for file in $(PUBLIC_HEADERS); do \ + $(INSTALL_DATA) $(srcdir)/$$file '$(DESTDIR)$(includedir)'/`dirname $$file` || exit; \ + done $(INSTALL_DATA) pg_config.h '$(DESTDIR)$(includedir)' $(INSTALL_DATA) pg_config_os.h '$(DESTDIR)$(includedir)' - $(INSTALL_DATA) $(srcdir)/pg_config_manual.h '$(DESTDIR)$(includedir)' # These headers are needed by the not-so-public headers of the interfaces. - $(INSTALL_DATA) $(srcdir)/c.h '$(DESTDIR)$(includedir_internal)' - $(INSTALL_DATA) $(srcdir)/port.h '$(DESTDIR)$(includedir_internal)' - $(INSTALL_DATA) $(srcdir)/postgres_fe.h '$(DESTDIR)$(includedir_internal)' - $(INSTALL_DATA) $(srcdir)/libpq/pqcomm.h '$(DESTDIR)$(includedir_internal)/libpq' - $(INSTALL_DATA) $(srcdir)/libpq/protocol.h '$(DESTDIR)$(includedir_internal)/libpq' + for file in $(INTERNAL_HEADERS); do \ + $(INSTALL_DATA) $(srcdir)/$$file '$(DESTDIR)$(includedir_internal)'/`dirname $$file` || exit; \ + done # These headers are needed for server-side development $(INSTALL_DATA) pg_config.h '$(DESTDIR)$(includedir_server)' $(INSTALL_DATA) pg_config_os.h '$(DESTDIR)$(includedir_server)' + for file in $(SERVER_HEADERS); do \ + $(INSTALL_DATA) $(srcdir)/$$file '$(DESTDIR)$(includedir_server)'/`dirname $$file` || exit; \ + done +# Generated server headers (not in list files) $(INSTALL_DATA) nodes/nodetags.h '$(DESTDIR)$(includedir_server)/nodes' $(INSTALL_DATA) utils/errcodes.h '$(DESTDIR)$(includedir_server)/utils' $(INSTALL_DATA) utils/fmgroids.h '$(DESTDIR)$(includedir_server)/utils' $(INSTALL_DATA) utils/fmgrprotos.h '$(DESTDIR)$(includedir_server)/utils' - $(INSTALL_DATA) $(srcdir)/*.h '$(DESTDIR)$(includedir_server)' - for dir in $(SUBDIRS); do \ - $(INSTALL_DATA) $(srcdir)/$$dir/*.h '$(DESTDIR)$(includedir_server)'/$$dir || exit; \ - done -ifeq ($(vpath_build),yes) for file in storage/lwlocknames.h utils/probes.h utils/wait_event_types.h; do \ $(INSTALL_DATA) $$file '$(DESTDIR)$(includedir_server)'/$$file || exit; \ done -endif $(MAKE) -C catalog install -installdirs: - $(MKDIR_P) '$(DESTDIR)$(includedir)/libpq' '$(DESTDIR)$(includedir_internal)/libpq' - $(MKDIR_P) $(addprefix '$(DESTDIR)$(includedir_server)'/, $(SUBDIRS)) +SERVER_HEADER_DIRS := $(sort $(patsubst %/,%,$(dir $(SERVER_HEADERS)))) +installdirs: + $(MKDIR_P) '$(DESTDIR)$(includedir)' $(addprefix '$(DESTDIR)$(includedir)'/, $(sort $(patsubst %/,%,$(filter-out ./,$(dir $(PUBLIC_HEADERS)))))) + $(MKDIR_P) '$(DESTDIR)$(includedir_internal)' $(addprefix '$(DESTDIR)$(includedir_internal)'/, $(sort $(patsubst %/,%,$(filter-out ./,$(dir $(INTERNAL_HEADERS)))))) + $(MKDIR_P) $(addprefix '$(DESTDIR)$(includedir_server)'/, $(SERVER_HEADER_DIRS)) uninstall: - rm -f $(addprefix '$(DESTDIR)$(includedir)'/, pg_config.h pg_config_os.h pg_config_manual.h postgres_ext.h libpq/libpq-fs.h) - rm -f $(addprefix '$(DESTDIR)$(includedir_internal)'/, c.h port.h postgres_fe.h libpq/pqcomm.h libpq/protocol.h) + rm -f $(addprefix '$(DESTDIR)$(includedir)'/, $(PUBLIC_HEADERS) pg_config.h pg_config_os.h) + rm -f $(addprefix '$(DESTDIR)$(includedir_internal)'/, $(INTERNAL_HEADERS)) # heuristic... - rm -rf $(addprefix '$(DESTDIR)$(includedir_server)'/, $(SUBDIRS) *.h) + rm -rf $(addprefix '$(DESTDIR)$(includedir_server)'/, $(SERVER_HEADER_DIRS) *.h) $(MAKE) -C catalog uninstall diff --git a/src/include/catalog/Makefile b/src/include/catalog/Makefile index 444fc76eed6..b8fa9df16b0 100644 --- a/src/include/catalog/Makefile +++ b/src/include/catalog/Makefile @@ -146,8 +146,6 @@ bki-stamp: $(top_srcdir)/src/backend/catalog/genbki.pl $(top_srcdir)/src/backend install: all installdirs $(INSTALL_DATA) postgres.bki '$(DESTDIR)$(datadir)/postgres.bki' $(INSTALL_DATA) system_constraints.sql '$(DESTDIR)$(datadir)/system_constraints.sql' -# In non-vpath builds, src/include/Makefile already installs all headers. -ifeq ($(vpath_build),yes) $(INSTALL_DATA) schemapg.h '$(DESTDIR)$(includedir_server)'/catalog/schemapg.h $(INSTALL_DATA) syscache_ids.h '$(DESTDIR)$(includedir_server)'/catalog/syscache_ids.h $(INSTALL_DATA) syscache_info.h '$(DESTDIR)$(includedir_server)'/catalog/syscache_info.h @@ -155,7 +153,6 @@ ifeq ($(vpath_build),yes) for file in $(GENERATED_HEADERS); do \ $(INSTALL_DATA) $$file '$(DESTDIR)$(includedir_server)'/catalog/$$file || exit; \ done -endif installdirs: $(MKDIR_P) '$(DESTDIR)$(datadir)' '$(DESTDIR)$(includedir_server)' diff --git a/src/include/internal_headers.list b/src/include/internal_headers.list new file mode 100644 index 00000000000..8e12f4d7cd6 --- /dev/null +++ b/src/include/internal_headers.list @@ -0,0 +1,11 @@ +# Internal client headers installed to $(includedir_internal) +# +# These headers are needed by the not-so-public headers of the interfaces, +# i.e. for client library development. + +c.h +port.h +postgres_fe.h + +libpq/pqcomm.h +libpq/protocol.h diff --git a/src/include/meson.build b/src/include/meson.build index 7d734d92dab..c03e508b961 100644 --- a/src/include/meson.build +++ b/src/include/meson.build @@ -72,51 +72,43 @@ pg_config_paths = configure_file( ) configure_files += pg_config_paths -install_headers( - 'pg_config_manual.h', - 'postgres_ext.h', -) - -install_headers( - 'libpq/libpq-fs.h', - install_dir: dir_include / 'libpq', -) - -install_headers( - 'c.h', - 'port.h', - 'postgres_fe.h', - install_dir: dir_include_internal, -) - -install_headers( - 'libpq/pqcomm.h', - 'libpq/protocol.h', - install_dir: dir_include_internal / 'libpq', -) +_header_lists = { + 'public_headers.list': dir_include, + 'internal_headers.list': dir_include_internal, + 'server_headers.list': dir_include_server, +} + +foreach list_file, base_dir : _header_lists + prev_dir = '' + batch = [] + foreach line : fs.read(list_file).strip().split('\n') + f = line.strip() + if f == '' or f.startswith('#') + continue + endif + d = fs.parent(f) + if d != prev_dir and batch.length() > 0 + if prev_dir == '.' + install_headers(batch, install_dir: base_dir) + else + install_headers(batch, install_dir: base_dir / prev_dir) + endif + batch = [] + endif + prev_dir = d + batch += f + endforeach + if batch.length() > 0 + if prev_dir == '.' + install_headers(batch, install_dir: base_dir) + else + install_headers(batch, install_dir: base_dir / prev_dir) + endif + endif +endforeach -install_headers( - 'c.h', - 'fmgr.h', - 'funcapi.h', - 'getopt_long.h', - 'miscadmin.h', - 'pg_config_manual.h', - 'pg_getopt.h', - 'pg_trace.h', - 'pgstat.h', - 'pgtar.h', - 'pgtime.h', - 'port.h', - 'postgres.h', - 'postgres_ext.h', - 'postgres_fe.h', - 'varatt.h', - 'windowapi.h', - pg_config_os, - pg_config, - install_dir: dir_include_server, -) +# Generated headers for server directory +install_headers(pg_config_os, pg_config, install_dir: dir_include_server) subdir('catalog') subdir('nodes') @@ -124,64 +116,6 @@ subdir('pch') subdir('storage') subdir('utils') -header_subdirs = [ - 'access', - 'archive', - 'catalog', - 'bootstrap', - 'commands', - 'common', - 'datatype', - 'executor', - 'fe_utils', - 'foreign', - 'jit', - 'lib', - 'libpq', - 'mb', - 'nodes', - 'optimizer', - 'parser', - 'partitioning', - 'postmaster', - 'regex', - 'replication', - 'rewrite', - 'statistics', - 'storage', - 'tcop', - 'snowball', - 'tsearch', - 'utils', - 'port', - 'portability', -] - -# XXX: installing headers this way has the danger of installing editor files -# etc, unfortunately install_subdir() doesn't allow including / excluding by -# pattern currently. -foreach d : header_subdirs - if d == 'catalog' - continue - endif - install_subdir(d, install_dir: dir_include_server, - exclude_files: ['.gitignore', 'meson.build']) -endforeach - -install_subdir('catalog', - install_dir: dir_include_server, - exclude_files: [ - '.gitignore', - 'Makefile', - 'README', - 'duplicate_oids', - 'meson.build', - 'reformat_dat_file.pl', - 'renumber_oids.pl', - 'unused_oids', - ] + bki_data, -) - # autoconf generates the file there, ensure we get a conflict generated_sources_ac += {'src/include': ['stamp-h']} diff --git a/src/include/public_headers.list b/src/include/public_headers.list new file mode 100644 index 00000000000..2cd1df6f8ab --- /dev/null +++ b/src/include/public_headers.list @@ -0,0 +1,12 @@ +# Public API headers installed to $(includedir) +# +# These headers are needed by the public headers of the interfaces (e.g. libpq). +# Generated headers are excluded from this list and handled directly by the +# build system. +# +# Each source directory installs only the entries that exist locally. + +pg_config_manual.h +postgres_ext.h + +libpq/libpq-fs.h diff --git a/src/include/server_headers.list b/src/include/server_headers.list new file mode 100644 index 00000000000..56d2e14d332 --- /dev/null +++ b/src/include/server_headers.list @@ -0,0 +1,856 @@ +# Server-side development headers installed to $(includedir_server) +# +# All source-tree headers needed for server-side development (e.g. extensions). +# Generated headers are excluded from this list and handled directly by the +# build system. + +c.h +fmgr.h +funcapi.h +getopt_long.h +miscadmin.h +pg_config_manual.h +pg_getopt.h +pgstat.h +pgtar.h +pgtime.h +pg_trace.h +port.h +postgres_ext.h +postgres_fe.h +postgres.h +varatt.h +windowapi.h + +access/amapi.h +access/amvalidate.h +access/attmap.h +access/attnum.h +access/brin.h +access/brin_internal.h +access/brin_page.h +access/brin_pageops.h +access/brin_revmap.h +access/brin_tuple.h +access/brin_xlog.h +access/bufmask.h +access/clog.h +access/cmptype.h +access/commit_ts.h +access/detoast.h +access/genam.h +access/generic_xlog.h +access/ginblock.h +access/gin.h +access/gin_private.h +access/gin_tuple.h +access/ginxlog.h +access/gist.h +access/gist_private.h +access/gistscan.h +access/gistxlog.h +access/hash.h +access/hash_xlog.h +access/heapam.h +access/heapam_xlog.h +access/heaptoast.h +access/hio.h +access/htup_details.h +access/htup.h +access/itup.h +access/multixact.h +access/multixact_internal.h +access/nbtree.h +access/nbtxlog.h +access/parallel.h +access/printsimple.h +access/printtup.h +access/relation.h +access/reloptions.h +access/relscan.h +access/rewriteheap.h +access/rmgrdesc_utils.h +access/rmgr.h +access/rmgrlist.h +access/sdir.h +access/sequence.h +access/session.h +access/skey.h +access/slru.h +access/spgist.h +access/spgist_private.h +access/spgxlog.h +access/stratnum.h +access/subtrans.h +access/syncscan.h +access/sysattr.h +access/tableam.h +access/table.h +access/tidstore.h +access/timeline.h +access/toast_compression.h +access/toast_helper.h +access/toast_internals.h +access/transam.h +access/tsmapi.h +access/tupconvert.h +access/tupdesc_details.h +access/tupdesc.h +access/tupmacs.h +access/twophase.h +access/twophase_rmgr.h +access/valid.h +access/visibilitymapdefs.h +access/visibilitymap.h +access/xact.h +access/xlogarchive.h +access/xlogbackup.h +access/xlogdefs.h +access/xlog.h +access/xloginsert.h +access/xlog_internal.h +access/xlogprefetcher.h +access/xlogreader.h +access/xlogrecord.h +access/xlogrecovery.h +access/xlogstats.h +access/xlogutils.h +access/xlogwait.h + +archive/archive_module.h +archive/shell_archive.h + +bootstrap/bootstrap.h + +catalog/binary_upgrade.h +catalog/catalog.h +catalog/catversion.h +catalog/dependency.h +catalog/genbki.h +catalog/heap.h +catalog/index.h +catalog/indexing.h +catalog/namespace.h +catalog/objectaccess.h +catalog/objectaddress.h +catalog/partition.h +catalog/pg_aggregate.h +catalog/pg_am.h +catalog/pg_amop.h +catalog/pg_amproc.h +catalog/pg_attrdef.h +catalog/pg_attribute.h +catalog/pg_authid.h +catalog/pg_auth_members.h +catalog/pg_cast.h +catalog/pg_class.h +catalog/pg_collation.h +catalog/pg_constraint.h +catalog/pg_control.h +catalog/pg_conversion.h +catalog/pg_database.h +catalog/pg_db_role_setting.h +catalog/pg_default_acl.h +catalog/pg_depend.h +catalog/pg_description.h +catalog/pg_enum.h +catalog/pg_event_trigger.h +catalog/pg_extension.h +catalog/pg_foreign_data_wrapper.h +catalog/pg_foreign_server.h +catalog/pg_foreign_table.h +catalog/pg_index.h +catalog/pg_inherits.h +catalog/pg_init_privs.h +catalog/pg_language.h +catalog/pg_largeobject.h +catalog/pg_largeobject_metadata.h +catalog/pg_namespace.h +catalog/pg_opclass.h +catalog/pg_operator.h +catalog/pg_opfamily.h +catalog/pg_parameter_acl.h +catalog/pg_partitioned_table.h +catalog/pg_policy.h +catalog/pg_proc.h +catalog/pg_publication.h +catalog/pg_publication_namespace.h +catalog/pg_publication_rel.h +catalog/pg_range.h +catalog/pg_replication_origin.h +catalog/pg_rewrite.h +catalog/pg_seclabel.h +catalog/pg_sequence.h +catalog/pg_shdepend.h +catalog/pg_shdescription.h +catalog/pg_shseclabel.h +catalog/pg_statistic_ext_data.h +catalog/pg_statistic_ext.h +catalog/pg_statistic.h +catalog/pg_subscription.h +catalog/pg_subscription_rel.h +catalog/pg_tablespace.h +catalog/pg_transform.h +catalog/pg_trigger.h +catalog/pg_ts_config.h +catalog/pg_ts_config_map.h +catalog/pg_ts_dict.h +catalog/pg_ts_parser.h +catalog/pg_ts_template.h +catalog/pg_type.h +catalog/pg_user_mapping.h +catalog/storage.h +catalog/storage_xlog.h +catalog/toasting.h + +commands/alter.h +commands/async.h +commands/cluster.h +commands/collationcmds.h +commands/comment.h +commands/conversioncmds.h +commands/copyapi.h +commands/copyfrom_internal.h +commands/copy.h +commands/createas.h +commands/dbcommands.h +commands/dbcommands_xlog.h +commands/defrem.h +commands/discard.h +commands/event_trigger.h +commands/explain_dr.h +commands/explain_format.h +commands/explain.h +commands/explain_state.h +commands/extension.h +commands/lockcmds.h +commands/matview.h +commands/policy.h +commands/portalcmds.h +commands/prepare.h +commands/proclang.h +commands/progress.h +commands/publicationcmds.h +commands/schemacmds.h +commands/seclabel.h +commands/sequence.h +commands/sequence_xlog.h +commands/subscriptioncmds.h +commands/tablecmds.h +commands/tablespace.h +commands/trigger.h +commands/typecmds.h +commands/user.h +commands/vacuum.h +commands/view.h +commands/wait.h + +common/archive.h +common/base64.h +common/blkreftable.h +common/checksum_helper.h +common/compression.h +common/config_info.h +common/connect.h +common/controldata_utils.h +common/cryptohash.h +common/fe_memutils.h +common/file_perm.h +common/file_utils.h +common/hashfn.h +common/hashfn_unstable.h +common/hmac.h +common/int128.h +common/int.h +common/ip.h +common/jsonapi.h +common/keywords.h +common/kwlookup.h +common/link-canary.h +common/logging.h +common/md5.h +common/oauth-common.h +common/openssl.h +common/parse_manifest.h +common/percentrepl.h +common/pg_lzcompress.h +common/pg_prng.h +common/relpath.h +common/restricted_token.h +common/saslprep.h +common/scram-common.h +common/sha1.h +common/sha2.h +common/shortest_dec.h +common/string.h +common/unicode_case.h +common/unicode_case_table.h +common/unicode_category.h +common/unicode_category_table.h +common/unicode_east_asian_fw_table.h +common/unicode_nonspacing_table.h +common/unicode_norm.h +common/unicode_norm_hashfunc.h +common/unicode_normprops_table.h +common/unicode_norm_table.h +common/unicode_version.h +common/username.h + +datatype/timestamp.h + +executor/execAsync.h +executor/execdebug.h +executor/execdesc.h +executor/execExpr.h +executor/execParallel.h +executor/execPartition.h +executor/execScan.h +executor/executor.h +executor/functions.h +executor/hashjoin.h +executor/instrument.h +executor/instrument_node.h +executor/nodeAgg.h +executor/nodeAppend.h +executor/nodeBitmapAnd.h +executor/nodeBitmapHeapscan.h +executor/nodeBitmapIndexscan.h +executor/nodeBitmapOr.h +executor/nodeCtescan.h +executor/nodeCustom.h +executor/nodeForeignscan.h +executor/nodeFunctionscan.h +executor/nodeGather.h +executor/nodeGatherMerge.h +executor/nodeGroup.h +executor/nodeHash.h +executor/nodeHashjoin.h +executor/nodeIncrementalSort.h +executor/nodeIndexonlyscan.h +executor/nodeIndexscan.h +executor/nodeLimit.h +executor/nodeLockRows.h +executor/nodeMaterial.h +executor/nodeMemoize.h +executor/nodeMergeAppend.h +executor/nodeMergejoin.h +executor/nodeModifyTable.h +executor/nodeNamedtuplestorescan.h +executor/nodeNestloop.h +executor/nodeProjectSet.h +executor/nodeRecursiveunion.h +executor/nodeResult.h +executor/nodeSamplescan.h +executor/nodeSeqscan.h +executor/nodeSetOp.h +executor/nodeSort.h +executor/nodeSubplan.h +executor/nodeSubqueryscan.h +executor/nodeTableFuncscan.h +executor/nodeTidrangescan.h +executor/nodeTidscan.h +executor/nodeUnique.h +executor/nodeValuesscan.h +executor/nodeWindowAgg.h +executor/nodeWorktablescan.h +executor/spi.h +executor/spi_priv.h +executor/tablefunc.h +executor/tqueue.h +executor/tstoreReceiver.h +executor/tuptable.h + +fe_utils/archive.h +fe_utils/astreamer.h +fe_utils/cancel.h +fe_utils/conditional.h +fe_utils/connect_utils.h +fe_utils/mbprint.h +fe_utils/option_utils.h +fe_utils/parallel_slot.h +fe_utils/print.h +fe_utils/psqlscan.h +fe_utils/psqlscan_int.h +fe_utils/query_utils.h +fe_utils/recovery_gen.h +fe_utils/simple_list.h +fe_utils/string_utils.h +fe_utils/version.h + +foreign/fdwapi.h +foreign/foreign.h + +jit/jit.h +jit/llvmjit_backport.h +jit/llvmjit_emit.h +jit/llvmjit.h +jit/SectionMemoryManager.h + +lib/binaryheap.h +lib/bipartite_match.h +lib/bloomfilter.h +lib/dshash.h +lib/hyperloglog.h +lib/ilist.h +lib/integerset.h +lib/knapsack.h +lib/pairingheap.h +lib/qunique.h +lib/radixtree.h +lib/rbtree.h +lib/simplehash.h +lib/sort_template.h +lib/stringinfo.h + +libpq/auth.h +libpq/be-fsstubs.h +libpq/be-gssapi-common.h +libpq/crypt.h +libpq/hba.h +libpq/ifaddr.h +libpq/libpq-be-fe.h +libpq/libpq-be-fe-helpers.h +libpq/libpq-be.h +libpq/libpq-fs.h +libpq/libpq.h +libpq/oauth.h +libpq/pg-gssapi.h +libpq/pqcomm.h +libpq/pqformat.h +libpq/pqmq.h +libpq/pqsignal.h +libpq/protocol.h +libpq/sasl.h +libpq/scram.h + +mb/pg_wchar.h +mb/stringinfo_mb.h + +nodes/bitmapset.h +nodes/execnodes.h +nodes/extensible.h +nodes/lockoptions.h +nodes/makefuncs.h +nodes/memnodes.h +nodes/miscnodes.h +nodes/multibitmapset.h +nodes/nodeFuncs.h +nodes/nodes.h +nodes/params.h +nodes/parsenodes.h +nodes/pathnodes.h +nodes/pg_list.h +nodes/plannodes.h +nodes/primnodes.h +nodes/print.h +nodes/queryjumble.h +nodes/readfuncs.h +nodes/replnodes.h +nodes/subscripting.h +nodes/supportnodes.h +nodes/tidbitmap.h +nodes/value.h + +optimizer/appendinfo.h +optimizer/clauses.h +optimizer/cost.h +optimizer/extendplan.h +optimizer/geqo_copy.h +optimizer/geqo_gene.h +optimizer/geqo.h +optimizer/geqo_misc.h +optimizer/geqo_mutation.h +optimizer/geqo_pool.h +optimizer/geqo_random.h +optimizer/geqo_recombination.h +optimizer/geqo_selection.h +optimizer/inherit.h +optimizer/joininfo.h +optimizer/optimizer.h +optimizer/orclauses.h +optimizer/paramassign.h +optimizer/pathnode.h +optimizer/paths.h +optimizer/placeholder.h +optimizer/plancat.h +optimizer/planmain.h +optimizer/planner.h +optimizer/prep.h +optimizer/restrictinfo.h +optimizer/subselect.h +optimizer/tlist.h + +parser/analyze.h +parser/kwlist.h +parser/parse_agg.h +parser/parse_clause.h +parser/parse_coerce.h +parser/parse_collate.h +parser/parse_cte.h +parser/parse_enr.h +parser/parse_expr.h +parser/parse_func.h +parser/parse_merge.h +parser/parse_node.h +parser/parse_oper.h +parser/parse_param.h +parser/parse_relation.h +parser/parser.h +parser/parse_target.h +parser/parsetree.h +parser/parse_type.h +parser/parse_utilcmd.h +parser/scanner.h +parser/scansup.h + +partitioning/partbounds.h +partitioning/partdefs.h +partitioning/partdesc.h +partitioning/partprune.h + +portability/instr_time.h +portability/mem.h + +port/aix.h +port/atomics/arch-arm.h +port/atomics/arch-ppc.h +port/atomics/arch-x86.h +port/atomics/fallback.h +port/atomics/generic-gcc.h +port/atomics/generic.h +port/atomics/generic-msvc.h +port/atomics.h +port/cygwin.h +port/darwin.h +port/freebsd.h +port/linux.h +port/netbsd.h +port/openbsd.h +port/pg_bitutils.h +port/pg_bswap.h +port/pg_cpu.h +port/pg_crc32c.h +port/pg_iovec.h +port/pg_lfind.h +port/pg_numa.h +port/pg_pthread.h +port/simd.h +port/solaris.h +port/win32/arpa/inet.h +port/win32/dlfcn.h +port/win32/grp.h +port/win32.h +port/win32_msvc/dirent.h +port/win32_msvc/sys/file.h +port/win32_msvc/sys/param.h +port/win32_msvc/sys/time.h +port/win32_msvc/unistd.h +port/win32_msvc/utime.h +port/win32/netdb.h +port/win32/netinet/in.h +port/win32/netinet/tcp.h +port/win32ntdll.h +port/win32_port.h +port/win32/pwd.h +port/win32/sys/resource.h +port/win32/sys/select.h +port/win32/sys/socket.h +port/win32/sys/un.h +port/win32/sys/wait.h + +postmaster/autovacuum.h +postmaster/auxprocess.h +postmaster/bgworker.h +postmaster/bgworker_internals.h +postmaster/bgwriter.h +postmaster/fork_process.h +postmaster/interrupt.h +postmaster/pgarch.h +postmaster/postmaster.h +postmaster/proctypelist.h +postmaster/startup.h +postmaster/syslogger.h +postmaster/walsummarizer.h +postmaster/walwriter.h + +regex/regcustom.h +regex/regerrs.h +regex/regex.h +regex/regexport.h +regex/regguts.h + +replication/conflict.h +replication/decode.h +replication/logicalctl.h +replication/logical.h +replication/logicallauncher.h +replication/logicalproto.h +replication/logicalrelation.h +replication/logicalworker.h +replication/message.h +replication/origin.h +replication/output_plugin.h +replication/pgoutput.h +replication/reorderbuffer.h +replication/slot.h +replication/slotsync.h +replication/snapbuild.h +replication/snapbuild_internal.h +replication/syncrep.h +replication/walreceiver.h +replication/walsender.h +replication/walsender_private.h +replication/worker_internal.h + +rewrite/prs2lock.h +rewrite/rewriteDefine.h +rewrite/rewriteHandler.h +rewrite/rewriteManip.h +rewrite/rewriteRemove.h +rewrite/rewriteSearchCycle.h +rewrite/rewriteSupport.h +rewrite/rowsecurity.h + +snowball/libstemmer/api.h +snowball/libstemmer/snowball_runtime.h +snowball/libstemmer/stem_ISO_8859_1_basque.h +snowball/libstemmer/stem_ISO_8859_1_catalan.h +snowball/libstemmer/stem_ISO_8859_1_danish.h +snowball/libstemmer/stem_ISO_8859_1_dutch.h +snowball/libstemmer/stem_ISO_8859_1_dutch_porter.h +snowball/libstemmer/stem_ISO_8859_1_english.h +snowball/libstemmer/stem_ISO_8859_1_finnish.h +snowball/libstemmer/stem_ISO_8859_1_french.h +snowball/libstemmer/stem_ISO_8859_1_german.h +snowball/libstemmer/stem_ISO_8859_1_indonesian.h +snowball/libstemmer/stem_ISO_8859_1_irish.h +snowball/libstemmer/stem_ISO_8859_1_italian.h +snowball/libstemmer/stem_ISO_8859_1_norwegian.h +snowball/libstemmer/stem_ISO_8859_1_porter.h +snowball/libstemmer/stem_ISO_8859_1_portuguese.h +snowball/libstemmer/stem_ISO_8859_1_spanish.h +snowball/libstemmer/stem_ISO_8859_1_swedish.h +snowball/libstemmer/stem_ISO_8859_2_hungarian.h +snowball/libstemmer/stem_ISO_8859_2_polish.h +snowball/libstemmer/stem_KOI8_R_russian.h +snowball/libstemmer/stem_UTF_8_arabic.h +snowball/libstemmer/stem_UTF_8_armenian.h +snowball/libstemmer/stem_UTF_8_basque.h +snowball/libstemmer/stem_UTF_8_catalan.h +snowball/libstemmer/stem_UTF_8_danish.h +snowball/libstemmer/stem_UTF_8_dutch.h +snowball/libstemmer/stem_UTF_8_dutch_porter.h +snowball/libstemmer/stem_UTF_8_english.h +snowball/libstemmer/stem_UTF_8_esperanto.h +snowball/libstemmer/stem_UTF_8_estonian.h +snowball/libstemmer/stem_UTF_8_finnish.h +snowball/libstemmer/stem_UTF_8_french.h +snowball/libstemmer/stem_UTF_8_german.h +snowball/libstemmer/stem_UTF_8_greek.h +snowball/libstemmer/stem_UTF_8_hindi.h +snowball/libstemmer/stem_UTF_8_hungarian.h +snowball/libstemmer/stem_UTF_8_indonesian.h +snowball/libstemmer/stem_UTF_8_irish.h +snowball/libstemmer/stem_UTF_8_italian.h +snowball/libstemmer/stem_UTF_8_lithuanian.h +snowball/libstemmer/stem_UTF_8_nepali.h +snowball/libstemmer/stem_UTF_8_norwegian.h +snowball/libstemmer/stem_UTF_8_polish.h +snowball/libstemmer/stem_UTF_8_porter.h +snowball/libstemmer/stem_UTF_8_portuguese.h +snowball/libstemmer/stem_UTF_8_romanian.h +snowball/libstemmer/stem_UTF_8_russian.h +snowball/libstemmer/stem_UTF_8_serbian.h +snowball/libstemmer/stem_UTF_8_spanish.h +snowball/libstemmer/stem_UTF_8_swedish.h +snowball/libstemmer/stem_UTF_8_tamil.h +snowball/libstemmer/stem_UTF_8_turkish.h +snowball/libstemmer/stem_UTF_8_yiddish.h +snowball/snowball_runtime.h + +statistics/extended_stats_internal.h +statistics/statistics_format.h +statistics/statistics.h +statistics/stat_utils.h + +storage/aio.h +storage/aio_internal.h +storage/aio_subsys.h +storage/aio_types.h +storage/barrier.h +storage/block.h +storage/buffile.h +storage/buf.h +storage/buf_internals.h +storage/bufmgr.h +storage/bufpage.h +storage/bulk_write.h +storage/checksum.h +storage/checksum_impl.h +storage/condition_variable.h +storage/copydir.h +storage/dsm.h +storage/dsm_impl.h +storage/dsm_registry.h +storage/fd.h +storage/fileset.h +storage/freespace.h +storage/fsm_internals.h +storage/indexfsm.h +storage/io_worker.h +storage/ipc.h +storage/itemid.h +storage/itemptr.h +storage/large_object.h +storage/latch.h +storage/lmgr.h +storage/lockdefs.h +storage/lock.h +storage/lwlock.h +storage/lwlocklist.h +storage/md.h +storage/off.h +storage/pg_sema.h +storage/pg_shmem.h +storage/pmsignal.h +storage/predicate.h +storage/predicate_internals.h +storage/procarray.h +storage/proc.h +storage/proclist.h +storage/proclist_types.h +storage/procnumber.h +storage/procsignal.h +storage/read_stream.h +storage/reinit.h +storage/relfilelocator.h +storage/sharedfileset.h +storage/shmem.h +storage/shm_mq.h +storage/shm_toc.h +storage/sinvaladt.h +storage/sinval.h +storage/s_lock.h +storage/smgr.h +storage/spin.h +storage/standbydefs.h +storage/standby.h +storage/sync.h +storage/waiteventset.h + +tcop/backend_startup.h +tcop/cmdtag.h +tcop/cmdtaglist.h +tcop/deparse_utility.h +tcop/dest.h +tcop/fastpath.h +tcop/pquery.h +tcop/tcopprot.h +tcop/utility.h + +tsearch/dicts/regis.h +tsearch/dicts/spell.h +tsearch/ts_cache.h +tsearch/ts_locale.h +tsearch/ts_public.h +tsearch/ts_type.h +tsearch/ts_utils.h + +utils/aclchk_internal.h +utils/acl.h +utils/arrayaccess.h +utils/array.h +utils/ascii.h +utils/attoptcache.h +utils/backend_progress.h +utils/backend_status.h +utils/builtins.h +utils/bytea.h +utils/cash.h +utils/catcache.h +utils/combocid.h +utils/conffiles.h +utils/date.h +utils/datetime.h +utils/datum.h +utils/dsa.h +utils/elog.h +utils/evtcache.h +utils/expandeddatum.h +utils/expandedrecord.h +utils/float.h +utils/fmgrtab.h +utils/formatting.h +utils/freepage.h +utils/funccache.h +utils/geo_decls.h +utils/guc.h +utils/guc_hooks.h +utils/guc_tables.h +utils/help_config.h +utils/hsearch.h +utils/index_selfuncs.h +utils/inet.h +utils/injection_point.h +utils/inval.h +utils/jsonb.h +utils/jsonfuncs.h +utils/json.h +utils/jsonpath.h +utils/logtape.h +utils/lsyscache.h +utils/memdebug.h +utils/memutils.h +utils/memutils_internal.h +utils/memutils_memorychunk.h +utils/multirangetypes.h +utils/numeric.h +utils/palloc.h +utils/partcache.h +utils/pg_crc.h +utils/pg_locale_c.h +utils/pg_locale.h +utils/pg_lsn.h +utils/pg_rusage.h +utils/pgstat_internal.h +utils/pgstat_kind.h +utils/pidfile.h +utils/plancache.h +utils/portal.h +utils/ps_status.h +utils/queryenvironment.h +utils/rangetypes.h +utils/regproc.h +utils/relcache.h +utils/relfilenumbermap.h +utils/rel.h +utils/relmapper.h +utils/relptr.h +utils/reltrigger.h +utils/resowner.h +utils/rls.h +utils/ruleutils.h +utils/sampling.h +utils/selfuncs.h +utils/sharedtuplestore.h +utils/skipsupport.h +utils/snapmgr.h +utils/snapshot.h +utils/sortsupport.h +utils/spccache.h +utils/syscache.h +utils/timeout.h +utils/timestamp.h +utils/tuplesort.h +utils/tuplestore.h +utils/typcache.h +utils/tzparser.h +utils/usercontext.h +utils/uuid.h +utils/varbit.h +utils/varlena.h +utils/wait_classes.h +utils/wait_event.h +utils/xid8.h +utils/xml.h + -- 2.43.0