mirror of
https://github.com/postgres/postgres.git
synced 2025-08-06 18:42:54 +03:00
Add ddl_command_end support for event triggers.
Dimitri Fontaine, with slight changes by me
This commit is contained in:
@@ -27,8 +27,9 @@
|
||||
<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
|
||||
supported event is <literal>ddl_command_start</>. Support for
|
||||
additional events may be added in future releases.
|
||||
supported events are <literal>ddl_command_start</>
|
||||
and <literal>ddl_command_end</>. Support for additional events may be
|
||||
added in future releases.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -43,6 +44,13 @@
|
||||
<literal>CREATE TABLE AS</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <literal>ddl_command_end</> event occurs just before returning
|
||||
control from the execution of a <literal>CREATE</>, <literal>ALTER</>,
|
||||
or <literal>DROP</> commmand. It shares the same exceptions as
|
||||
the <literal>ddl_command_start</> event.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For a complete list of commands supported by the event trigger mechanism,
|
||||
see <xref linkend="event-trigger-matrix">.
|
||||
@@ -84,328 +92,409 @@
|
||||
<row>
|
||||
<entry>command tag</entry>
|
||||
<entry><literal>ddl_command_start</literal></entry>
|
||||
<entry><literal>ddl_command_end</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER COLLATION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER DOMAIN</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER FUNCTION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER OPERATOR</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER SCHEMA</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER SERVER</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER TRIGGER</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>ALTER VIEW</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE CAST</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE CONVERSION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE EXTENSION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE FUNCTION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE LANGUAGE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE RULE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE SEQUENCE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE TABLE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE TRIGGER</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>CREATE VIEW</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP CAST</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP CONVERSION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP EXTENSION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP FUNCTION</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP LANGUAGE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP RULE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP SEQUENCE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP TABLE</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP TRIGGER</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</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>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left"><literal>DROP VIEW</literal></entry>
|
||||
<entry align="center"><literal>X</literal></entry>
|
||||
<entry align="center"><literal>X</literal></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>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
Reference in New Issue
Block a user