From f925c79b9f36c54b67053ade5ad225a75b8dc803 Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Wed, 23 Jan 2013 09:17:20 -0500
Subject: [PATCH] Further documentation tweaks for event triggers.

Per discussion between Dimitri Fontaine, myself, and others.
---
 doc/src/sgml/event-trigger.sgml | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml
index 48703713d77..71241c82245 100644
--- a/doc/src/sgml/event-trigger.sgml
+++ b/doc/src/sgml/event-trigger.sgml
@@ -41,14 +41,20 @@
      mechanism does not support these object types.
      <literal>ddl_command_start</> also occurs just before the execution of a
      <literal>SELECT INTO</literal> command, since this is equivalent to
-     <literal>CREATE TABLE AS</literal>.
+     <literal>CREATE TABLE AS</literal>.  The <literal>ddl_command_end</>
+     event occurs just after the execution of this same set of commands.
    </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</> command.  It shares the same exceptions as
-    the <literal>ddl_command_start</> event.
+     Event triggers (like other functions) cannot be executed in an aborted
+     transaction.  Thus, if a DDL command fails with an error, any associated
+     <literal>ddl_command_end</> triggers will not be executed.  Conversely,
+     if a <literal>ddl_command_start</> trigger fails with an error, no
+     further event triggers will fire, and no attempt will be made to execute
+     the command itself.  Similarly, if a <literal>ddl_command_end</> trigger
+     fails with an error, the effects of the DDL statement will be rolled
+     back, just as they would be in any other case where the containing
+     transaction aborts.
    </para>
 
    <para>
-- 
GitLab