Thread: Column-level triggers in docs

Column-level triggers in docs

From
Thom Brown
Date:
I notice that the 9.0 docs page for CREATE TRIGGER doesn't indicate
column-level syntax in the synopsis:
http://www.postgresql.org/docs/9.0/static/sql-createtrigger.html

It does detail the additional syntax required for specifying a column
in the "event" parameter detail, but shouldn't this also be in the
synopsis?

So it would read something like:

CREATE TRIGGER name { BEFORE | AFTER } { event [ OF column_name [, ...
] ] [ OR ... ] }
    ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
    [ WHEN ( condition ) ]
    EXECUTE PROCEDURE function_name ( arguments )

--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935

Re: Column-level triggers in docs

From
Tom Lane
Date:
Thom Brown <thom@linux.com> writes:
> I notice that the 9.0 docs page for CREATE TRIGGER doesn't indicate
> column-level syntax in the synopsis:
> http://www.postgresql.org/docs/9.0/static/sql-createtrigger.html

My recollection is that we did it that way deliberately.  The originally
submitted patch tried to explain this as part of the syntax diagram,
but it was (a) confusing and (b) not correct in detail.

> So it would read something like:

> CREATE TRIGGER name { BEFORE | AFTER } { event [ OF column_name [, ...
> ] ] [ OR ... ] }

If you do this then it looks like "OF column_name" can be attached to
all four event types, which is wrong.  So you end up needing just as
much verbal annotation as in the current arrangement.

            regards, tom lane

Re: Column-level triggers in docs

From
Thom Brown
Date:
On 29 August 2010 15:35, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Thom Brown <thom@linux.com> writes:
>> I notice that the 9.0 docs page for CREATE TRIGGER doesn't indicate
>> column-level syntax in the synopsis:
>> http://www.postgresql.org/docs/9.0/static/sql-createtrigger.html
>
> My recollection is that we did it that way deliberately.  The originally
> submitted patch tried to explain this as part of the syntax diagram,
> but it was (a) confusing and (b) not correct in detail.

I missed the discussion is seems.

>> So it would read something like:
>
>> CREATE TRIGGER name { BEFORE | AFTER } { event [ OF column_name [, ...
>> ] ] [ OR ... ] }
>
> If you do this then it looks like "OF column_name" can be attached to
> all four event types, which is wrong.  So you end up needing just as
> much verbal annotation as in the current arrangement.

Ah, yes, I didn't consider that.  Fair enough.

--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935