Materialized view rewrite is broken when there is an event trigger
Önder Kalacı <onderkalaci@gmail.com>
From: Önder Kalacı <onderkalaci@gmail.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-08-09T12:55:06Z
Lists: pgsql-hackers
Attachments
- v1-Allow-MATERIALIZED-VIEW-Rewrite-when-event-triggers.patch (application/octet-stream) patch v1
Hi, Attached a patch to fix as well. If the patch looks good to you, can you consider getting this to PG 15? Steps to repro: -- some basic examples from src/test/regress/sql/create_am.sql CREATE TABLE heaptable USING heap AS SELECT a, repeat(a::text, 100) FROM generate_series(1,9) AS a; CREATE ACCESS METHOD heap2 TYPE TABLE HANDLER heap_tableam_handler; CREATE MATERIALIZED VIEW heapmv USING heap AS SELECT * FROM heaptable; -- altering MATERIALIZED ALTER MATERIALIZED VIEW heapmv SET ACCESS METHOD heap2; ALTER MATERIALIZED VIEW heapmv SET ACCESS METHOD heap; -- setup event trigger CREATE OR REPLACE FUNCTION empty_event_trigger() RETURNS event_trigger AS $$ DECLARE BEGIN END; $$ LANGUAGE plpgsql; CREATE EVENT TRIGGER empty_triggger ON sql_drop EXECUTE PROCEDURE empty_event_trigger(); -- now, after creating an event trigger, ALTER MATERIALIZED VIEW fails unexpectedly ALTER MATERIALIZED VIEW heapmv SET ACCESS METHOD heap2; ERROR: unexpected command tag "ALTER MATERIALIZED VIEW" Thanks, Onder Kalaci
Commits
-
Allow event trigger table_rewrite for ALTER MATERIALIZED VIEW
- 522ae011fa01 15.0 landed
- 93f2349c36a7 16.0 landed