Generate syscache info from catalog files

Peter Eisentraut <peter@eisentraut.org>

Commit: 9b1a6f50b91dca6610932650c8c81a3c924259f9
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2024-01-23T06:31:06Z
Releases: 17.0
Generate syscache info from catalog files

Add a new genbki macros MAKE_SYSCACHE that specifies the syscache ID
macro, the underlying index, and the number of buckets.  From that, we
can generate the existing tables in syscache.h and syscache.c via
genbki.pl.

Reviewed-by: John Naylor <johncnaylorls@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/75ae5875-3abc-dafc-8aec-73247ed41cde@eisentraut.org

Files

PathChange+/−
src/backend/catalog/Catalog.pm modified +10 −0
src/backend/catalog/genbki.pl modified +75 −0
src/backend/catalog/.gitignore modified +2 −0
src/backend/catalog/Makefile modified +1 −1
src/backend/utils/cache/syscache.c modified +15 −617
src/include/catalog/genbki.h modified +6 −0
src/include/catalog/.gitignore modified +2 −0
src/include/catalog/meson.build modified +16 −2
src/include/catalog/pg_aggregate.h modified +2 −0
src/include/catalog/pg_am.h modified +3 −0
src/include/catalog/pg_amop.h modified +3 −0
src/include/catalog/pg_amproc.h modified +2 −0
src/include/catalog/pg_attribute.h modified +3 −0
src/include/catalog/pg_authid.h modified +3 −0
src/include/catalog/pg_auth_members.h modified +3 −0
src/include/catalog/pg_cast.h modified +2 −0
src/include/catalog/pg_class.h modified +3 −0
src/include/catalog/pg_collation.h modified +3 −0
src/include/catalog/pg_constraint.h modified +2 −0
src/include/catalog/pg_conversion.h modified +4 −0
src/include/catalog/pg_database.h modified +2 −0
src/include/catalog/pg_default_acl.h modified +2 −0
src/include/catalog/pg_enum.h modified +3 −0
src/include/catalog/pg_event_trigger.h modified +3 −0
src/include/catalog/pg_foreign_data_wrapper.h modified +3 −0
src/include/catalog/pg_foreign_server.h modified +3 −0
src/include/catalog/pg_foreign_table.h modified +2 −0
src/include/catalog/pg_index.h modified +2 −0
src/include/catalog/pg_language.h modified +3 −0
src/include/catalog/pg_namespace.h modified +3 −0
src/include/catalog/pg_opclass.h modified +3 −0
src/include/catalog/pg_operator.h modified +2 −0
src/include/catalog/pg_opfamily.h modified +3 −0
src/include/catalog/pg_parameter_acl.h modified +2 −0
src/include/catalog/pg_partitioned_table.h modified +2 −0
src/include/catalog/pg_proc.h modified +3 −0
src/include/catalog/pg_publication.h modified +3 −0
src/include/catalog/pg_publication_namespace.h modified +3 −0
src/include/catalog/pg_publication_rel.h modified +3 −0
src/include/catalog/pg_range.h modified +3 −0
src/include/catalog/pg_replication_origin.h modified +3 −0
src/include/catalog/pg_rewrite.h modified +2 −0
src/include/catalog/pg_sequence.h modified +2 −0
src/include/catalog/pg_statistic_ext_data.h modified +1 −0
src/include/catalog/pg_statistic_ext.h modified +3 −0
src/include/catalog/pg_statistic.h modified +2 −0
src/include/catalog/pg_subscription.h modified +3 −0
src/include/catalog/pg_subscription_rel.h modified +2 −0
src/include/catalog/pg_tablespace.h modified +2 −0
src/include/catalog/pg_transform.h modified +3 −0
src/include/catalog/pg_ts_config.h modified +3 −0
src/include/catalog/pg_ts_config_map.h modified +2 −0
src/include/catalog/pg_ts_dict.h modified +3 −0
src/include/catalog/pg_ts_parser.h modified +3 −0
src/include/catalog/pg_ts_template.h modified +3 −0
src/include/catalog/pg_type.h modified +3 −0
src/include/catalog/pg_user_mapping.h modified +3 −0
src/include/utils/syscache.h modified +1 −97
src/tools/pginclude/cpluspluscheck modified +5 −0
src/tools/pginclude/headerscheck modified +5 −0

Discussion