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(-)
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера