postgresql/src/include/catalog
Tomas Vondra ab596105b5 BRIN minmax-multi indexes
Adds BRIN opclasses similar to the existing minmax, except that instead
of summarizing the page range into a single [min,max] range, the summary
consists of multiple ranges and/or points, allowing gaps. This allows
more efficient handling of data with poor correlation to physical
location within the table and/or outlier values, for which the regular
minmax opclassed tend to work poorly.

It's possible to specify the number of values kept for each page range,
either as a single point or an interval boundary.

  CREATE TABLE t (a int);
  CREATE INDEX ON t
   USING brin (a int4_minmax_multi_ops(values_per_range=16));

When building the summary, the values are combined into intervals with
the goal to minimize the "covering" (sum of interval lengths), using a
support procedure computing distance between two values.

Bump catversion, due to various catalog changes.

Author: Tomas Vondra <tomas.vondra@postgresql.org>
Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org>
Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
Reviewed-by: Sokolov Yura <y.sokolov@postgrespro.ru>
Reviewed-by: John Naylor <john.naylor@enterprisedb.com>
Discussion: https://postgr.es/m/c1138ead-7668-f0e1-0638-c3be3237e812@2ndquadrant.com
Discussion: https://postgr.es/m/5d78b774-7e9c-c94e-12cf-fef51cc89b1a%402ndquadrant.com
2021-03-26 13:54:30 +01: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 Update copyright for 2021 2021-01-02 13:06:25 -05:00
catversion.h BRIN minmax-multi indexes 2021-03-26 13:54:30 +01:00
dependency.h Prevent drop of tablespaces used by partitioned relations 2021-01-14 15:32:14 -03: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 Add TABLESPACE option to REINDEX 2021-02-04 14:34:20 +09: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 Update copyright for 2021 2021-01-02 13:06:25 -05: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 Add bit_xor aggregate function 2021-03-06 19:28:05 +01: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 BRIN minmax-multi indexes 2021-03-26 13:54:30 +01: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 Allow configurable LZ4 TOAST compression. 2021-03-19 15:10:38 -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 Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_authid.h Add primary keys and unique constraints to system catalogs 2021-01-30 19:44:29 +01:00
pg_cast.dat Run reformat-dat-files to declutter the catalog data files. 2021-01-13 16:14:38 -05: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 Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05: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 Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05: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 Update copyright for 2021 2021-01-02 13:06:25 -05: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 Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05: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 Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05: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 ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY 2021-03-25 18:00:28 -03: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 BRIN minmax-multi indexes 2021-03-26 13:54:30 +01: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 Add TID Range Scans to support efficient scanning ranges of TIDs 2021-02-27 22:59:36 +13:00
pg_operator.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_opfamily.dat BRIN minmax-multi indexes 2021-03-26 13:54:30 +01: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 BRIN minmax-multi indexes 2021-03-26 13:54:30 +01:00
pg_proc.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05:00
pg_publication.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
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 Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_statistic_ext_data.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
pg_subscription.h Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05: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 BRIN minmax-multi indexes 2021-03-26 13:54:30 +01:00
pg_type.h Remove special BKI_LOOKUP magic for namespace and role OIDs. 2021-02-03 12:01:48 -05: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 Update copyright for 2021 2021-01-02 13:06:25 -05: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 Update copyright for 2021 2021-01-02 13:06:25 -05:00
unused_oids Update copyright for 2021 2021-01-02 13:06:25 -05:00