mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Fix search_path to a safe value during maintenance operations.
While executing maintenance operations (ANALYZE, CLUSTER, REFRESH MATERIALIZED VIEW, REINDEX, or VACUUM), set search_path to 'pg_catalog, pg_temp' to prevent inconsistent behavior. Functions that are used for functional indexes, in index expressions, or in materialized views and depend on a different search path must be declared with CREATE FUNCTION ... SET search_path='...'. This change was previously committed as05e1737351
, then reverted in commit2fcc7ee7af
because it was too late in the cycle. Preparation for the MAINTAIN privilege, which was previously reverted due to search_path manipulation hazards. Discussion: https://postgr.es/m/d4ccaf3658cb3c281ec88c851a09733cd9482f22.camel@j-davis.com Discussion: https://postgr.es/m/E1q7j7Y-000z1H-Hr%40gemulon.postgresql.org Discussion: https://postgr.es/m/e44327179e5c9015c8dda67351c04da552066017.camel%40j-davis.com Reviewed-by: Greg Stark, Nathan Bossart, Noah Misch
This commit is contained in:
@@ -205,6 +205,12 @@ ANALYZE [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <r
|
||||
(This will not be sufficient if there is heavy update activity.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
While <command>ANALYZE</command> is running, the <xref
|
||||
linkend="guc-search-path"/> is temporarily changed to <literal>pg_catalog,
|
||||
pg_temp</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>ANALYZE</command>
|
||||
requires only a read lock on the target table, so it can run in
|
||||
|
Reference in New Issue
Block a user