mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
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.
This commit is contained in:
@ -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:
|
||||
|
||||
|
Reference in New Issue
Block a user