postgresql/src/include/catalog
Noah Misch af73e37fa1 Cope with inplace update making catcache stale during TOAST fetch.
This extends ad98fb1422 to invals of
inplace updates.  Trouble requires an inplace update of a catalog having
a TOAST table, so only pg_database was at risk.  (The other catalog on
which core code performs inplace updates, pg_class, has no TOAST table.)
Trouble would require something like the inplace-inval.spec test.
Consider GRANT ... ON DATABASE fetching a stale row from cache and
discarding a datfrozenxid update that vac_truncate_clog() has already
relied upon.  Back-patch to v12 (all supported versions).

Reviewed (in an earlier version) by Robert Haas.

Discussion: https://postgr.es/m/20240114201411.d0@rfd.leadboat.com
Discussion: https://postgr.es/m/20240512232923.aa.nmisch@google.com
2024-06-27 19:21:12 -07:00
..
.gitignore Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
binary_upgrade.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
catalog.h Cope with inplace update making catcache stale during TOAST fetch. 2024-06-27 19:21:12 -07:00
catversion.h Finish reverting 3eda9fc09f. 2021-09-07 10:52:25 -04:00
dependency.h In extensions, don't replace objects not belonging to the extension. 2022-08-08 11:12:31 -04:00
duplicate_oids Update copyright for 2021 2021-01-02 13:06:25 -05:00
genbki.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
heap.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
index.h Revert per-index collation version tracking feature. 2021-05-07 21:10:11 +12:00
indexing.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
Makefile Update copyright for 2021 2021-01-02 13:06:25 -05:00
namespace.h Reconsider the handling of procedure OUT parameters. 2021-06-10 17:11:36 -04:00
objectaccess.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
objectaddress.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
partition.h ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY 2021-03-25 18:00:28 -03:00
pg_aggregate.dat Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
pg_aggregate.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_am.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_am.h Add primary keys and unique constraints to system catalogs 2021-01-30 19:44:29 +01:00
pg_amop.dat BRIN minmax-multi indexes 2021-03-26 13:54:30 +01:00
pg_amop.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_amproc.dat Dissociate btequalimage() from interval_ops, ending its deduplication. 2023-10-14 16:33:54 -07:00
pg_amproc.h Add primary keys and unique constraints to system catalogs 2021-01-30 19:44:29 +01:00
pg_attrdef.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_attribute.h Rethink definition of pg_attribute.attcompression. 2021-05-27 13:24:27 -04:00
pg_auth_members.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_authid.dat Do pre-release housekeeping on catalog data. 2021-05-12 13:36:06 -04:00
pg_authid.h doc: Improve hyphenation consistency 2021-04-21 08:14:43 +02:00
pg_cast.dat Revert 29854ee8d1 due to buildfarm failures 2021-06-15 21:44:40 +03:00
pg_cast.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_class.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_class.h Correct comment and some documentation about REPLICA_IDENTITY_INDEX 2021-12-22 16:38:38 +09:00
pg_collation.dat Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_collation.h Do pre-release housekeeping on catalog data. 2021-05-12 13:36:06 -04:00
pg_constraint.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_control.h Fix WAL replay in presence of an incomplete record 2021-09-29 11:41:01 -03:00
pg_conversion.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_conversion.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_database.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_database.h Handle DROP DATABASE getting interrupted 2023-07-13 13:03:33 -07:00
pg_db_role_setting.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_default_acl.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_depend.h Revert per-index collation version tracking feature. 2021-05-07 21:10:11 +12:00
pg_description.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_enum.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_event_trigger.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_extension.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_foreign_data_wrapper.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_foreign_server.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_foreign_table.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_index.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_inherits.h Allow a partdesc-omitting-partitions to be cached 2021-04-28 15:44:35 -04:00
pg_init_privs.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_language.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_language.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_largeobject.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_largeobject_metadata.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_namespace.dat Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_namespace.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_opclass.dat Ensure we allocate NAMEDATALEN bytes for names in Index Only Scans 2024-05-01 13:22:41 +12:00
pg_opclass.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_operator.dat Fix small inconsistencies in catalog definition of multirange operators 2021-07-15 14:18:53 +03:00
pg_operator.h Prevent ALTER TYPE/DOMAIN/OPERATOR from changing extension membership. 2021-08-17 14:29:22 -04:00
pg_opfamily.dat Dissociate btequalimage() from interval_ops, ending its deduplication. 2023-10-14 16:33:54 -07:00
pg_opfamily.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_partitioned_table.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_policy.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_proc.dat Set the volatility of the timestamptz version of date_bin() back to immutable 2021-09-03 13:40:32 -04:00
pg_proc.h Reconsider the handling of procedure OUT parameters. 2021-06-10 17:11:36 -04:00
pg_publication.h Invalidate all partitions for a partitioned table in publication. 2021-09-22 08:13:37 +05:30
pg_publication_rel.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_range.dat Run reformat-dat-files to declutter the catalog data files. 2021-01-13 16:14:38 -05:00
pg_range.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_replication_origin.h Add primary keys and unique constraints to system catalogs 2021-01-30 19:44:29 +01:00
pg_rewrite.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_seclabel.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_sequence.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_shdepend.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_shdescription.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_shseclabel.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_statistic.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_statistic_ext.h Extended statistics on expressions 2021-03-27 00:01:11 +01:00
pg_statistic_ext_data.h Extended statistics on expressions 2021-03-27 00:01:11 +01:00
pg_subscription.h Fix incorrect permissions on pg_subscription. 2021-06-03 14:54:06 -04:00
pg_subscription_rel.h Allow multiple xacts during table sync in logical replication. 2021-02-12 07:41:51 +05:30
pg_tablespace.dat Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_tablespace.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_transform.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_trigger.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_ts_config.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_ts_config.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_ts_config_map.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_ts_config_map.h Add primary keys and unique constraints to system catalogs 2021-01-30 19:44:29 +01:00
pg_ts_dict.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_ts_dict.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_ts_parser.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_ts_parser.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_ts_template.dat Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_ts_template.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_type.dat Do pre-release housekeeping on catalog data. 2021-05-12 13:36:06 -04:00
pg_type.h Prevent ALTER TYPE/DOMAIN/OPERATOR from changing extension membership. 2021-08-17 14:29:22 -04:00
pg_user_mapping.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
reformat_dat_file.pl Update copyright for 2021 2021-01-02 13:06:25 -05:00
renumber_oids.pl Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
storage.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
storage_xlog.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
toasting.h Fix toast rewrites in logical decoding. 2021-08-25 10:10:50 +05:30
unused_oids Update copyright for 2021 2021-01-02 13:06:25 -05:00