pgsql: When creating materialized views, use REFRESH to load data.

From: Jeff Davis <jdavis(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: When creating materialized views, use REFRESH to load data.
Date: 2024-07-16 22:44:15
Message-ID: E1sTqu7-001x1z-Sw@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

When creating materialized views, use REFRESH to load data.

Previously, CREATE MATERIALIZED VIEW ... WITH DATA populated the MV
the same way as CREATE TABLE ... AS.

Instead, reuse the REFRESH logic, which locks down security-restricted
operations and restricts the search_path. This reduces the chance that
a subsequent refresh will fail.

Reported-by: Noah Misch
Backpatch-through: 17
Discussion: https://postgr.es/m/20240630222344.db.nmisch@google.com

Branch
------
REL_17_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/b4da732fd64e936970f38c792f8b32c4bdf2bcd5

Modified Files
--------------
src/backend/commands/createas.c | 32 ++++++++---------
src/backend/commands/matview.c | 64 ++++++++++++++++++++-------------
src/include/commands/matview.h | 3 ++
src/test/regress/expected/namespace.out | 4 +--
4 files changed, 60 insertions(+), 43 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2024-07-16 23:13:02 Re: pgsql: Adjust recently added test for pg_signal_autovacuum role
Previous Message Jeff Davis 2024-07-16 22:44:10 pgsql: When creating materialized views, use REFRESH to load data.