Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Allow event trigger table_rewrite for ALTER MATERIALIZED VIEW
authorMichael Paquier <michael@paquier.xyz>
Wed, 17 Aug 2022 05:55:20 +0000 (14:55 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 17 Aug 2022 05:55:20 +0000 (14:55 +0900)
This event can happen when using SET ACCESS METHOD, as the data files of
the materialized need a full refresh but this command tag was not
updated to reflect that.  The documentation is updated to track this
behavior.

Author: Onder Kalaci
Discussion: https://postgr.es/m/CACawEhXwHN3X34FiwoYG8vXR-oyUdrp7qcfRWSzS+NPahS5gSw@mail.gmail.com
Backpatch-through: 15

doc/src/sgml/event-trigger.sgml
src/include/tcop/cmdtaglist.h
src/test/regress/expected/event_trigger.out
src/test/regress/sql/event_trigger.sql

index 9c66f97b0f667995d715aa0a821fa2b246821674..f1235a2c9f77ba5ebb711848988332b51808aaf4 100644 (file)
         <entry align="center"><literal>X</literal></entry>
         <entry align="center"><literal>X</literal></entry>
         <entry align="center"><literal>-</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
+        <entry align="center"><literal>X</literal></entry>
         <entry align="left"></entry>
        </row>
        <row>
index 2b1163ce33aea9f7612bd23492578a2849a75667..9e94f44c5f439a797782e7f751108f92e4cb4e2c 100644 (file)
@@ -42,7 +42,7 @@ PG_CMDTAG(CMDTAG_ALTER_FUNCTION, "ALTER FUNCTION", true, false, false)
 PG_CMDTAG(CMDTAG_ALTER_INDEX, "ALTER INDEX", true, false, false)
 PG_CMDTAG(CMDTAG_ALTER_LANGUAGE, "ALTER LANGUAGE", true, false, false)
 PG_CMDTAG(CMDTAG_ALTER_LARGE_OBJECT, "ALTER LARGE OBJECT", true, false, false)
-PG_CMDTAG(CMDTAG_ALTER_MATERIALIZED_VIEW, "ALTER MATERIALIZED VIEW", true, false, false)
+PG_CMDTAG(CMDTAG_ALTER_MATERIALIZED_VIEW, "ALTER MATERIALIZED VIEW", true, true, false)
 PG_CMDTAG(CMDTAG_ALTER_OPERATOR, "ALTER OPERATOR", true, false, false)
 PG_CMDTAG(CMDTAG_ALTER_OPERATOR_CLASS, "ALTER OPERATOR CLASS", true, false, false)
 PG_CMDTAG(CMDTAG_ALTER_OPERATOR_FAMILY, "ALTER OPERATOR FAMILY", true, false, false)
index c95c30b3140ac6c4b9a00ee2428c9570a0c8eb60..5a10958df529b0453c2e359058752ab72033b865 100644 (file)
@@ -516,6 +516,11 @@ alter table rewriteme
  add column another int default -1,
  alter column foo type numeric(10,4);
 NOTICE:  Table 'rewriteme' is being rewritten (reason = 4)
+-- matview rewrite when changing access method
+CREATE MATERIALIZED VIEW heapmv USING heap AS SELECT 1 AS a;
+ALTER MATERIALIZED VIEW heapmv SET ACCESS METHOD heap2;
+NOTICE:  Table 'heapmv' is being rewritten (reason = 8)
+DROP MATERIALIZED VIEW heapmv;
 -- shouldn't trigger a table_rewrite event
 alter table rewriteme alter column foo type numeric(12,4);
 begin;
index 5e45e3f190ee60f398af86815e8097da162cde2a..1aeaddbe7154ba09433b7c4538d9d4f28b67429c 100644 (file)
@@ -379,6 +379,11 @@ alter table rewriteme
  add column another int default -1,
  alter column foo type numeric(10,4);
 
+-- matview rewrite when changing access method
+CREATE MATERIALIZED VIEW heapmv USING heap AS SELECT 1 AS a;
+ALTER MATERIALIZED VIEW heapmv SET ACCESS METHOD heap2;
+DROP MATERIALIZED VIEW heapmv;
+
 -- shouldn't trigger a table_rewrite event
 alter table rewriteme alter column foo type numeric(12,4);
 begin;