pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <bruce@momjian.us>
To: Jeff Davis <pgsql@j-davis.com>
Cc: Kevin Grittner <kgrittn@postgresql.org>
Cc: pgsql-committers@postgresql.org
Subject: Re: pgsql: Fix documentation template for CREATE TRIGGER.
Date: Fri, 9 Jan 2015 19:20:37 -0500
Message-ID: <20150110002037.GF26812@momjian.us> (raw)
In-Reply-To: <1403464789.9081.11.camel@jeff-desktop>
References: <E1WyMAC-0005Fp-FO@gemulon.postgresql.org>
	<1403464789.9081.11.camel@jeff-desktop>
List-Unsubscribe:  <mailto:majordomo@postgresql.org?body=unsub%20pgsql-committers>

On Sun, Jun 22, 2014 at 12:19:49PM -0700, Jeff Davis wrote:
> On Sat, 2014-06-21 at 14:21 +0000, Kevin Grittner wrote:
> > Fix documentation template for CREATE TRIGGER.
> > 
> > By using curly braces, the template had specified that one of
> > "NOT DEFERRABLE", "INITIALLY IMMEDIATE", or "INITIALLY DEFERRED"
> > was required on any CREATE TRIGGER statement, which is not
> > accurate.  Change to square brackets makes that optional.
> > 
> > Backpatch to 9.1, where the error was introduced.
> 
> It still doesn't look quite right to me. The new form:
> 
> [ NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY
> DEFERRED } ]
> 
> says that, if DEFERRABLE is specified, then INITIALLY IMMEDIATE or
> INITIALLY DEFERRED is required. But the following is accepted by the
> server:
> 
>   create constraint trigger mytrigger
>     after insert on dummy_table deferrable
>     for each row execute procedure dummy_trigger();
> 
> (Although the standard doesn't seem to have deferrable triggers, that
> does seem to match the deferrable constraint syntax that is in the
> spec.)
> 
> For that matter, the following is also accepted by the server:
> 
>   create constraint trigger mytrigger
>     after insert on dummy_table initially deferred deferrable
>     for each row execute procedure dummy_trigger();
> 
> That case may be a bug; and regardless I don't think we want to
> document/encourage specifying them in that order. But the first case
> seems reasonable to me.

I agree with both statements so I have applied the attached doc patch to
head.
  
-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

-- 
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Attachments:

trigger.diff (text/x-diff, 1.6K) download diff --git a/doc/src/sgml/ref/create_trigger.sgml b/doc/src/sgml/ref/create_trigger.sgml new file mode 100644 index 29b815c..aae0b41 *** a/doc/src/sgml/ref/create_trigger.sgml --- b/doc/src/sgml/ref/create_trigger.sgml *************** PostgreSQL documentation *** 24,30 **** CREATE [ CONSTRAINT ] TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTER | INSTEAD OF } { <replaceable class="PARAMETER">event</replaceable> [ OR ... ] } ON <replaceable class="PARAMETER">table_name</replaceable> [ FROM <replaceable class="parameter">referenced_table_name</replaceable> ] ! [ NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } ] [ FOR [ EACH ] { ROW | STATEMENT } ] [ WHEN ( <replaceable class="parameter">condition</replaceable> ) ] EXECUTE PROCEDURE <replaceable class="PARAMETER">function_name</replaceable> ( <replaceable class="PARAMETER">arguments</replaceable> ) --- 24,30 ---- CREATE [ CONSTRAINT ] TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTER | INSTEAD OF } { <replaceable class="PARAMETER">event</replaceable> [ OR ... ] } ON <replaceable class="PARAMETER">table_name</replaceable> [ FROM <replaceable class="parameter">referenced_table_name</replaceable> ] ! [ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ] [ FOR [ EACH ] { ROW | STATEMENT } ] [ WHEN ( <replaceable class="parameter">condition</replaceable> ) ] EXECUTE PROCEDURE <replaceable class="PARAMETER">function_name</replaceable> ( <replaceable class="PARAMETER">arguments</replaceable> )

view thread (8+ messages)

Message-ID: <20150110002037.GF26812@momjian.us>
Permalink:  ../20150110002037.GF26812@momjian.us/
Also on:    postgresql.org/message-id/20150110002037.GF26812@momjian.us

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: bruce@momjian.us, pgsql@j-davis.com, kgrittn@postgresql.org
  Subject: Re: pgsql: Fix documentation template for CREATE TRIGGER.
  In-Reply-To: <20150110002037.GF26812@momjian.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox