diff options
| author | Peter Geoghegan <pg@bowt.ie> | 2021-10-13 14:08:11 -0700 |
|---|---|---|
| committer | Peter Geoghegan <pg@bowt.ie> | 2021-10-13 14:08:11 -0700 |
| commit | dd58194cf563c9d69821162861506d5d9acceddd (patch) | |
| tree | fb75bf1425566a05f208b379ff1b55355eb3b9d4 /doc/src | |
| parent | 419d27b1a28ae0b8ebb465610bcc67f36e78adfd (diff) | |
pg_amcheck: avoid unhelpful verification attempts.
Avoid calling contrib/amcheck functions with relations that are
unsuitable for checking. Specifically, don't attempt verification of
temporary relations, or indexes whose pg_index entry indicates that the
index is invalid, or not ready.
These relations are not supported by any of the contrib/amcheck
functions, for reasons that are pretty fundamental. For example, the
implementation of REINDEX CONCURRENTLY can add its own "transient"
pg_index entries, which has rather unclear implications for the B-Tree
verification functions, at least in the general case -- so they just
treat it as an error. It falls to the amcheck caller (in this case
pg_amcheck) to deal with the situation at a higher level.
pg_amcheck now simply treats these conditions as additional "visibility
concerns" when it queries system catalogs. This is a little arbitrary.
It seems to have the least problems among any of the available
alternatives.
Author: Mark Dilger <mark.dilger@enterprisedb.com>
Reported-By: Alexander Lakhin <exclusion@gmail.com>
Reviewed-By: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: Robert Haas <robertmhaas@gmail.com>
Bug: #17212
Discussion: https://postgr.es/m/17212-34dd4a1d6bba98bf@postgresql.org
Backpatch: 14-, where pg_amcheck was introduced.
Diffstat (limited to 'doc/src')
| -rw-r--r-- | doc/src/sgml/ref/pg_amcheck.sgml | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/pg_amcheck.sgml b/doc/src/sgml/ref/pg_amcheck.sgml index d00c48d0e79..43ee73ab93c 100644 --- a/doc/src/sgml/ref/pg_amcheck.sgml +++ b/doc/src/sgml/ref/pg_amcheck.sgml @@ -432,6 +432,18 @@ PostgreSQL documentation </variablelist> </para> + <warning> + <para> + The extra checks performed against B-tree indexes when the + <option>--parent-check</option> option or the + <option>--rootdescend</option> option is specified require + relatively strong relation-level locks. These checks are the only + checks that will block concurrent data modification from + <command>INSERT</command>, <command>UPDATE</command>, and + <command>DELETE</command> commands. + </para> + </warning> + <para> The following command-line options control the connection to the server: |
