doc: Remove event trigger firing matrix
authorPeter Eisentraut <[email protected]>
Wed, 6 Nov 2024 12:42:27 +0000 (13:42 +0100)
committerPeter Eisentraut <[email protected]>
Wed, 6 Nov 2024 12:43:17 +0000 (13:43 +0100)
This is difficult to maintain accurately, and it was probably already
somewhat incorrect, especially in the sql_drop and table_rewrite
categories.

The prior section already documented which DDL commands are *not*
supported (which was also slightly outdated), so let's expand that a
bit and just rely on that instead of listing out each command in full
detail.

Reviewed-by: Daniel Gustafsson <[email protected]>
Reviewed-by: Michael Paquier <[email protected]>
Reviewed-by: Jian He <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/CACJufxE_UAuxcM08BW5oVsg34v0cFWoEt8yBa5xSAoKLmL6LTQ%40mail.gmail.com

doc/src/sgml/event-trigger.sgml
src/backend/commands/event_trigger.c
src/backend/tcop/utility.c

index cfa7b3d1b2db7f575296700868d5f4a6d68da681..1bd9abb667650f47a07e99b14a549640e2727498 100644 (file)
@@ -26,7 +26,7 @@
 
    <para>
      An event trigger fires whenever the event with which it is associated
-     occurs in the database in which it is defined. Currently, the only
+     occurs in the database in which it is defined. Currently, the
      supported events are
      <literal>login</literal>,
      <literal>ddl_command_start</literal>,
@@ -36,6 +36,9 @@
      Support for additional events may be added in future releases.
    </para>
 
+   <sect2 id="event-trigger-login">
+    <title>login</title>
+
    <para>
      The <literal>login</literal> event occurs when an authenticated user logs
      into the system. Any bug in a trigger procedure for this event may
      For an example on how to use the <literal>login</literal> event trigger,
      see <xref linkend="event-trigger-database-login-example"/>.
    </para>
+   </sect2>
+
+   <sect2 id="event-trigger-ddl_command_start">
+    <title>ddl_command_start</title>
 
    <para>
      The <literal>ddl_command_start</literal> event occurs just before the
-     execution of a <literal>CREATE</literal>, <literal>ALTER</literal>, <literal>DROP</literal>,
-     <literal>SECURITY LABEL</literal>,
-     <literal>COMMENT</literal>, <literal>GRANT</literal> or <literal>REVOKE</literal>
-     command.  No check whether the affected object exists or doesn't exist is
-     performed before the event trigger fires.
-     As an exception, however, this event does not occur for
-     DDL commands targeting shared objects &mdash; databases, roles, and tablespaces
-     &mdash; or for commands targeting event triggers themselves.  The event trigger
-     mechanism does not support these object types.
-     <literal>ddl_command_start</literal> also occurs just before the execution of a
-     <literal>SELECT INTO</literal> command, since this is equivalent to
-     <literal>CREATE TABLE AS</literal>.
+     execution of a DDL command.  DDL commands in this context are:
+     <itemizedlist>
+      <listitem><para><literal>CREATE</literal></para></listitem>
+      <listitem><para><literal>ALTER</literal></para></listitem>
+      <listitem><para><literal>DROP</literal></para></listitem>
+      <listitem><para><literal>COMMENT</literal></para></listitem>
+      <listitem><para><literal>GRANT</literal></para></listitem>
+      <listitem><para><literal>IMPORT FOREIGN SCHEMA</literal></para></listitem>
+      <listitem><para><literal>REINDEX</literal></para></listitem>
+      <listitem><para><literal>REFRESH MATERIALIZED VIEW</literal></para></listitem>
+      <listitem><para><literal>REVOKE</literal></para></listitem>
+      <listitem><para><literal>SECURITY LABEL</literal></para></listitem>
+     </itemizedlist>
+     <literal>ddl_command_start</literal> also occurs just before the
+     execution of a <literal>SELECT INTO</literal> command, since this is
+     equivalent to <literal>CREATE TABLE AS</literal>.
+   </para>
+
+   <para>
+     As an exception, this event does not occur for DDL commands targeting
+     shared objects:
+     <itemizedlist>
+      <listitem><para>databases</para></listitem>
+      <listitem><para>roles (role definitions and role memberships)</para></listitem>
+      <listitem><para>tablespaces</para></listitem>
+      <listitem><para>parameter privileges</para></listitem>
+      <listitem><para><command>ALTER SYSTEM</command></para></listitem>
+     </itemizedlist>
+     This event also does not occur for commands targeting event triggers
+     themselves.
+   </para>
+
+   <para>
+     No check whether the affected object exists or doesn't exist is performed
+     before the event trigger fires.
    </para>
+   </sect2>
+
+   <sect2 id="event-trigger-ddl_command_end">
+    <title>ddl_command_end</title>
 
    <para>
     The <literal>ddl_command_end</literal> event occurs just after the execution of
-    this same set of commands.  To obtain more details on the <acronym>DDL</acronym>
+    the same set of commands as <literal>ddl_command_start</literal>.  To
+    obtain more details on the <acronym>DDL</acronym>
     operations that took place, use the set-returning function
     <literal>pg_event_trigger_ddl_commands()</literal> from the
     <literal>ddl_command_end</literal> event trigger code (see
     after the actions have taken place (but before the transaction commits),
     and thus the system catalogs can be read as already changed.
    </para>
+   </sect2>
+
+   <sect2 id="event-trigger-sql_drop">
+    <title>sql_drop</title>
 
    <para>
     The <literal>sql_drop</literal> event occurs just before the
     <literal>ddl_command_end</literal> event trigger for any operation that drops
-    database objects.  To list the objects that have been dropped, use the
+    database objects.  Note that besides the obvious <literal>DROP</literal>
+    commands, some <literal>ALTER</literal> commands can also trigger an
+    <literal>sql_drop</literal> event.
+   </para>
+
+   <para>
+    To list the objects that have been dropped, use the
     set-returning function <literal>pg_event_trigger_dropped_objects()</literal> from the
     <literal>sql_drop</literal> event trigger code (see
     <xref linkend="functions-event-triggers"/>). Note that
     the trigger is executed after the objects have been deleted from the
     system catalogs, so it's not possible to look them up anymore.
    </para>
+   </sect2>
+
+   <sect2 id="event-trigger-table_rewrite">
+    <title>table_rewrite</title>
 
    <para>
     The <literal>table_rewrite</literal> event occurs just before a table is
     like <literal>CLUSTER</literal> and <literal>VACUUM</literal>,
     the <literal>table_rewrite</literal> event is not triggered by them.
     To find the OID of the table that was rewritten, use the function
-    <literal>pg_event_trigger_table_rewrite_oid()</literal> (see
-    <xref linkend="functions-event-triggers"/>). To discover the reason(s)
-    for the rewrite, use the function
-    <literal>pg_event_trigger_table_rewrite_reason()</literal>.
+    <literal>pg_event_trigger_table_rewrite_oid()</literal>, to discover the
+    reason(s) for the rewrite, use the function
+    <literal>pg_event_trigger_table_rewrite_reason()</literal> (see <xref
+    linkend="functions-event-triggers"/>).
    </para>
+   </sect2>
+
+   <sect2 id="event-trigger-aborted-transactions">
+    <title>Event Triggers in Aborted Transactions</title>
 
    <para>
      Event triggers (like other functions) cannot be executed in an aborted
      back, just as they would be in any other case where the containing
      transaction aborts.
    </para>
+   </sect2>
 
-   <para>
-     For a complete list of commands supported by the event trigger mechanism,
-     see <xref linkend="event-trigger-matrix"/>.
-   </para>
+   <sect2 id="event-trigger-creating">
+    <title>Creating Event Triggers</title>
 
    <para>
      Event triggers are created using the command <xref linkend="sql-createeventtrigger"/>.
      to intercept. A common use of such triggers is to restrict the range of
      DDL operations which users may perform.
    </para>
-  </sect1>
-
-  <sect1 id="event-trigger-matrix">
-   <title>Event Trigger Firing Matrix</title>
-
-   <para>
-     <xref linkend="event-trigger-by-command-tag"/> lists all commands
-     for which event triggers are supported.
-   </para>
-
-   <table id="event-trigger-by-command-tag">
-     <title>Event Trigger Support by Command Tag</title>
-     <tgroup cols="6">
-      <colspec colname="col1" colwidth="2*"/>
-      <colspec colname="col2" colwidth="1*"/>
-      <colspec colname="col3" colwidth="1*"/>
-      <colspec colname="col4" colwidth="1*"/>
-      <colspec colname="col5" colwidth="1*"/>
-      <colspec colname="col6" colwidth="1*"/>
-      <thead>
-       <row>
-        <entry>Command Tag</entry>
-        <entry><literal>ddl_&zwsp;command_&zwsp;start</literal></entry>
-        <entry><literal>ddl_&zwsp;command_&zwsp;end</literal></entry>
-        <entry><literal>sql_&zwsp;drop</literal></entry>
-        <entry><literal>table_&zwsp;rewrite</literal></entry>
-        <entry>Notes</entry>
-       </row>
-      </thead>
-      <tbody>
-       <row>
-        <entry align="left"><literal>ALTER AGGREGATE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER COLLATION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER CONVERSION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER DOMAIN</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER DEFAULT PRIVILEGES</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER EXTENSION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER FOREIGN DATA WRAPPER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER FOREIGN TABLE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER FUNCTION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER LANGUAGE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER LARGE OBJECT</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER MATERIALIZED VIEW</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER OPERATOR</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER OPERATOR CLASS</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER OPERATOR FAMILY</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER POLICY</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER PROCEDURE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER PUBLICATION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER ROUTINE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER SCHEMA</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER SEQUENCE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER SERVER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER STATISTICS</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER SUBSCRIPTION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TABLE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TEXT SEARCH CONFIGURATION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TEXT SEARCH DICTIONARY</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TEXT SEARCH PARSER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TEXT SEARCH TEMPLATE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TRIGGER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER TYPE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER USER MAPPING</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>ALTER VIEW</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>COMMENT</literal></entry>
-        <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="left">Only for local objects</entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE ACCESS METHOD</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE AGGREGATE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE CAST</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE COLLATION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE CONVERSION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE DOMAIN</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE EXTENSION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE FOREIGN DATA WRAPPER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE FOREIGN TABLE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE FUNCTION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE INDEX</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE LANGUAGE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE MATERIALIZED VIEW</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE OPERATOR</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE OPERATOR CLASS</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE OPERATOR FAMILY</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE POLICY</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE PROCEDURE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE PUBLICATION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE RULE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE SCHEMA</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE SEQUENCE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE SERVER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE STATISTICS</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE SUBSCRIPTION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TABLE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TABLE AS</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TEXT SEARCH CONFIGURATION</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TEXT SEARCH DICTIONARY</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TEXT SEARCH PARSER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TEXT SEARCH TEMPLATE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TRIGGER</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE TYPE</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE USER MAPPING</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>CREATE VIEW</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP ACCESS METHOD</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP AGGREGATE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP CAST</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP COLLATION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP CONVERSION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP DOMAIN</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP EXTENSION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP FOREIGN DATA WRAPPER</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP FOREIGN TABLE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP FUNCTION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP INDEX</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP LANGUAGE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP MATERIALIZED VIEW</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP OPERATOR</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP OPERATOR CLASS</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP OPERATOR FAMILY</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP OWNED</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP POLICY</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP PROCEDURE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP PUBLICATION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP ROUTINE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP RULE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP SCHEMA</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP SEQUENCE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP SERVER</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP STATISTICS</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP SUBSCRIPTION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TABLE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TEXT SEARCH CONFIGURATION</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TEXT SEARCH DICTIONARY</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TEXT SEARCH PARSER</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TEXT SEARCH TEMPLATE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TRIGGER</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP TYPE</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP USER MAPPING</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>DROP VIEW</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>X</literal></entry>
-        <entry align="center"><literal>-</literal></entry>
-        <entry align="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>GRANT</literal></entry>
-        <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="left">Only for local objects</entry>
-       </row>
-       <row>
-        <entry align="left"><literal>IMPORT FOREIGN SCHEMA</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>REFRESH MATERIALIZED VIEW</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>REINDEX</literal></entry>
-        <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="left"></entry>
-       </row>
-       <row>
-        <entry align="left"><literal>REVOKE</literal></entry>
-        <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="left">Only for local objects</entry>
-       </row>
-       <row>
-        <entry align="left"><literal>SECURITY LABEL</literal></entry>
-        <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="left">Only for local objects</entry>
-       </row>
-       <row>
-        <entry align="left"><literal>SELECT INTO</literal></entry>
-        <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="left"></entry>
-       </row>
-      </tbody>
-     </tgroup>
-   </table>
+   </sect2>
   </sect1>
 
   <sect1 id="event-trigger-interface">
index a586d246eceec1b3d69423fec7cc1cfc931c2d5d..dcfc1dbaffd41199af37b3e99666df5148e2c907 100644 (file)
@@ -1123,7 +1123,7 @@ EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata)
 /*
  * Do event triggers support this object type?
  *
- * See also event trigger support matrix in event-trigger.sgml.
+ * See also event trigger documentation in event-trigger.sgml.
  */
 bool
 EventTriggerSupportsObjectType(ObjectType obtype)
@@ -1147,7 +1147,7 @@ EventTriggerSupportsObjectType(ObjectType obtype)
 /*
  * Do event triggers support this object class?
  *
- * See also event trigger support matrix in event-trigger.sgml.
+ * See also event trigger documentation in event-trigger.sgml.
  */
 bool
 EventTriggerSupportsObject(const ObjectAddress *object)
index b2ea8125c92423ecfc0529208b8dc7e701428dbc..f28bf37105964547d37dc691bb14ed9d5a0617a6 100644 (file)
@@ -535,6 +535,9 @@ ProcessUtility(PlannedStmt *pstmt,
  * event trigger code not be invoked when doing START TRANSACTION for
  * example, because we might need to refresh the event trigger cache,
  * which requires being in a valid transaction.
+ *
+ * When adding or moving utility commands, check that the documentation in
+ * event-trigger.sgml is kept up to date.
  */
 void
 standard_ProcessUtility(PlannedStmt *pstmt,