git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 6533062) | patch
Add primary keys and unique constraints to system catalogs
2021年1月30日 18:14:31 +0000 (19:14 +0100)
2021年1月30日 18:44:29 +0000 (19:44 +0100)
commit dfb75e478cacb33d277432e0df5e2f9a2a2b52d9
Add primary keys and unique constraints to system catalogs

For those system catalogs that have a unique indexes, make a primary
key and unique constraint, using ALTER TABLE ... PRIMARY KEY/UNIQUE
USING INDEX.

This can be helpful for GUI tools that look for a primary key, and it
might in the future allow declaring foreign keys, for making schema
diagrams.

The constraint creation statements are automatically created by
genbki.pl from DECLARE_UNIQUE_INDEX directives. To specify which one
of the available unique indexes is the primary key, use the new
directive DECLARE_UNIQUE_INDEX_PKEY instead. By convention, we
usually make a catalog's OID column its primary key, if it has one.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/dc5f44d9-5ec1-a596-0251-dadadcdede98@2ndquadrant.com
71 files changed:
src/backend/catalog/.gitignore diff | blob | blame | history
src/backend/catalog/Catalog.pm diff | blob | blame | history
src/backend/catalog/Makefile diff | blob | blame | history
src/backend/catalog/genbki.pl diff | blob | blame | history
src/bin/initdb/initdb.c diff | blob | blame | history
src/include/catalog/genbki.h diff | blob | blame | history
src/include/catalog/pg_aggregate.h diff | blob | blame | history
src/include/catalog/pg_am.h diff | blob | blame | history
src/include/catalog/pg_amop.h diff | blob | blame | history
src/include/catalog/pg_amproc.h diff | blob | blame | history
src/include/catalog/pg_attrdef.h diff | blob | blame | history
src/include/catalog/pg_attribute.h diff | blob | blame | history
src/include/catalog/pg_auth_members.h diff | blob | blame | history
src/include/catalog/pg_authid.h diff | blob | blame | history
src/include/catalog/pg_cast.h diff | blob | blame | history
src/include/catalog/pg_class.h diff | blob | blame | history
src/include/catalog/pg_collation.h diff | blob | blame | history
src/include/catalog/pg_constraint.h diff | blob | blame | history
src/include/catalog/pg_conversion.h diff | blob | blame | history
src/include/catalog/pg_database.h diff | blob | blame | history
src/include/catalog/pg_db_role_setting.h diff | blob | blame | history
src/include/catalog/pg_default_acl.h diff | blob | blame | history
src/include/catalog/pg_description.h diff | blob | blame | history
src/include/catalog/pg_enum.h diff | blob | blame | history
src/include/catalog/pg_event_trigger.h diff | blob | blame | history
src/include/catalog/pg_extension.h diff | blob | blame | history
src/include/catalog/pg_foreign_data_wrapper.h diff | blob | blame | history
src/include/catalog/pg_foreign_server.h diff | blob | blame | history
src/include/catalog/pg_foreign_table.h diff | blob | blame | history
src/include/catalog/pg_index.h diff | blob | blame | history
src/include/catalog/pg_inherits.h diff | blob | blame | history
src/include/catalog/pg_init_privs.h diff | blob | blame | history
src/include/catalog/pg_language.h diff | blob | blame | history
src/include/catalog/pg_largeobject.h diff | blob | blame | history
src/include/catalog/pg_largeobject_metadata.h diff | blob | blame | history
src/include/catalog/pg_namespace.h diff | blob | blame | history
src/include/catalog/pg_opclass.h diff | blob | blame | history
src/include/catalog/pg_operator.h diff | blob | blame | history
src/include/catalog/pg_opfamily.h diff | blob | blame | history
src/include/catalog/pg_partitioned_table.h diff | blob | blame | history
src/include/catalog/pg_policy.h diff | blob | blame | history
src/include/catalog/pg_proc.h diff | blob | blame | history
src/include/catalog/pg_publication.h diff | blob | blame | history
src/include/catalog/pg_publication_rel.h diff | blob | blame | history
src/include/catalog/pg_range.h diff | blob | blame | history
src/include/catalog/pg_replication_origin.h diff | blob | blame | history
src/include/catalog/pg_rewrite.h diff | blob | blame | history
src/include/catalog/pg_seclabel.h diff | blob | blame | history
src/include/catalog/pg_sequence.h diff | blob | blame | history
src/include/catalog/pg_shdescription.h diff | blob | blame | history
src/include/catalog/pg_shseclabel.h diff | blob | blame | history
src/include/catalog/pg_statistic.h diff | blob | blame | history
src/include/catalog/pg_statistic_ext.h diff | blob | blame | history
src/include/catalog/pg_statistic_ext_data.h diff | blob | blame | history
src/include/catalog/pg_subscription.h diff | blob | blame | history
src/include/catalog/pg_subscription_rel.h diff | blob | blame | history
src/include/catalog/pg_tablespace.h diff | blob | blame | history
src/include/catalog/pg_transform.h diff | blob | blame | history
src/include/catalog/pg_trigger.h diff | blob | blame | history
src/include/catalog/pg_ts_config.h diff | blob | blame | history
src/include/catalog/pg_ts_config_map.h diff | blob | blame | history
src/include/catalog/pg_ts_dict.h diff | blob | blame | history
src/include/catalog/pg_ts_parser.h diff | blob | blame | history
src/include/catalog/pg_ts_template.h diff | blob | blame | history
src/include/catalog/pg_type.h diff | blob | blame | history
src/include/catalog/pg_user_mapping.h diff | blob | blame | history
src/test/modules/unsafe_tests/expected/alter_system_table.out diff | blob | blame | history
src/test/modules/unsafe_tests/sql/alter_system_table.sql diff | blob | blame | history
src/test/regress/expected/misc_sanity.out diff | blob | blame | history
src/test/regress/sql/misc_sanity.sql diff | blob | blame | history
src/tools/msvc/clean.bat diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /