postgresql/src/include/catalog
Michael Paquier 41a033b505 Preserve index data in pg_statistic across REINDEX CONCURRENTLY
Statistics associated to an index got lost after running REINDEX
CONCURRENTLY, while the non-concurrent case preserves these correctly.
The concurrent and non-concurrent operations need to be consistent for
the end-user, and missing statistics would force to wait for a new
analyze to happen, which could take some time depending on the activity
of the existing autovacuum workers.  This issue is fixed by copying any
existing entries in pg_statistic associated to the old index to the new
one.  Note that this copy is already done with the data of the index in
the stats collector.

Reported-by: Fabrízio de Royes Mello
Author: Michael Paquier, Fabrízio de Royes Mello
Reviewed-by: Justin Pryzby
Discussion: https://postgr.es/m/CAFcNs+qpFPmiHd1oTXvcPdvAHicJDA9qBUSujgAhUMJyUMb+SA@mail.gmail.com
Backpatch-through: 12
2020-11-01 21:24:15 +09:00
..
.gitignore Replace our traditional initial-catalog-data format with a better design. 2018-04-08 13:17:27 -04:00
binary_upgrade.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
catalog.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
catversion.h Straighten out leakproofness markings on text comparison functions. 2019-09-21 16:56:30 -04:00
dependency.h Heed lock protocol in DROP OWNED BY 2020-05-06 12:29:41 -04:00
duplicate_oids Update copyright for 2019 2019-01-02 12:44:25 -05:00
genbki.h Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
heap.h Preserve index data in pg_statistic across REINDEX CONCURRENTLY 2020-11-01 21:24:15 +09:00
index.h Fix possible crash during FATAL exit from reindexing. 2020-04-21 15:58:42 -04:00
indexing.h Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
Makefile Minor improvements for reformat_dat_file.pl. 2019-03-08 11:48:49 -05:00
namespace.h Avoid failure if autovacuum tries to access a just-dropped temp namespace. 2020-02-28 20:28:34 -05:00
objectaccess.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
objectaddress.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
opfam_internal.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
partition.h Fix more typos and inconsistencies in the tree 2019-06-17 16:13:16 +09:00
pg_aggregate.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_aggregate.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_am.dat tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
pg_am.h tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
pg_amop.dat GIN support for @@ and @? jsonpath operators 2019-04-01 18:08:52 +03:00
pg_amop.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_amproc.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_amproc.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_attrdef.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
pg_attribute.h Generated columns 2019-03-30 08:15:57 +01:00
pg_auth_members.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_authid.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_authid.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_cast.dat Add support for multivariate MCV lists 2019-03-27 18:32:18 +01:00
pg_cast.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_class.dat Generated columns 2019-03-30 08:15:57 +01:00
pg_class.h Add BKI_DEFAULT to pg_class.relrewrite 2019-03-14 21:25:39 +01:00
pg_collation.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_collation.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_constraint.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_control.h Add basic infrastructure for 64 bit transaction IDs. 2019-03-28 18:12:20 +13:00
pg_conversion.dat Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
pg_conversion.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_database.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_database.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_db_role_setting.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_default_acl.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
pg_depend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_description.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_enum.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_event_trigger.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_extension.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_data_wrapper.h Fix more typos and inconsistencies in the tree 2019-06-17 16:13:16 +09:00
pg_foreign_server.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_table.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_index.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_inherits.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_init_privs.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_language.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_language.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_largeobject.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_largeobject_metadata.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_namespace.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_namespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opclass.dat Fix up handling of nondeterministic collations with pattern_ops opclasses. 2019-09-21 16:29:17 -04:00
pg_opclass.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_operator.dat Remove ambiguity for jsonb_path_match() and jsonb_path_exists() 2019-03-20 10:30:56 +03:00
pg_operator.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_opfamily.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opfamily.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_partitioned_table.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_pltemplate.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_pltemplate.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_policy.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
pg_proc.dat Straighten out leakproofness markings on text comparison functions. 2019-09-21 16:56:30 -04:00
pg_proc.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_publication.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_publication_rel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_range.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_range.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_replication_origin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_rewrite.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_seclabel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_sequence.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shdepend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shdescription.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shseclabel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_statistic.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_statistic_ext.h Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
pg_statistic_ext_data.h pgindent run prior to branching v12. 2019-07-01 12:37:52 -04:00
pg_subscription.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_subscription_rel.h Avoid direct C access to possibly-null pg_subscription_rel.srsublsn. 2020-07-21 11:40:46 -04:00
pg_tablespace.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_tablespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_transform.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_trigger.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_config.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config_map.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config_map.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_dict.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_dict.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_parser.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_parser.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_template.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_template.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_type.dat Do pre-release housekeeping on catalog data, and fix jsonpath send/recv. 2019-04-28 17:16:50 -04:00
pg_type.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_user_mapping.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
reformat_dat_file.pl Minor improvements for reformat_dat_file.pl. 2019-03-08 11:48:49 -05:00
renumber_oids.pl Create a script that can renumber manually-assigned OIDs. 2019-03-12 10:50:48 -04:00
storage.h Revert "Skip WAL for new relfilenodes, under wal_level=minimal." 2020-03-22 09:24:13 -07:00
storage_xlog.h Fix several recently introduced issues around handling new relation forks. 2019-04-29 19:28:05 -07:00
toasting.h Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
unused_oids Initial pgperltidy run for v12. 2019-05-22 13:36:19 -04:00