public inbox for [email protected]
help / color / mirror / Atom feedFrom: Bruce Momjian <[email protected]>
To: Tom Lane <[email protected]>
Cc: Thomas Munro <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Andrew Gierth <[email protected]>
Subject: Re: Trigger behaviour not as stated
Date: Sun, 28 Jan 2018 15:34:02 -0500
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<CAEepm=1cAO8y4dFv_xd=43iP7f4T3A2hYAzjgjQagHtt7H87Fw@mail.gmail.com>
<[email protected]>
On Sun, Jan 28, 2018 at 02:18:38PM -0500, Tom Lane wrote:
> Thomas Munro <[email protected]> writes:
> > On Thu, Jan 25, 2018 at 11:07 AM, Bruce Momjian <[email protected]> wrote:
> >> ... The attached patch updates the docs to say
> >> statement-level triggers fire on the "referenced" table, while row-level
> >> triggers fire only on the "affected" table, (vs. all affected tables)
> >> even if they are not referenced in the query. I would backpatch this to
> >> PG 10.
>
> > I was trying to convey that, but it does seem a little terse and
> > cryptic. Your addition of "referenced" and "only" make it clearer.
>
> Hm, the first part of Bruce's change seems fine, but I think this wording:
>
> ... In contrast,
> ! row-level triggers are fired only on affected partitions or child tables,
> ! even if they are not referenced in the query.
>
> is still confusing. How about something like
>
> In contrast, row-level triggers are fired for each actual row change,
> including changes in partitions or child tables that are not directly
> named in the query.
>
> Possibly "row operation" would be better than "row change".
Uh, I don't think we want to highlight the statement vs row difference
here but the fact that statement triggers fire on the referenced object
and not on the effected rows. I have attached an updated patch which I
think is an improvement.
--
Bruce Momjian <[email protected]> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +
Attachments:
[text/x-diff] trigger.diff (1.5K, 2-trigger.diff)
download | inline diff:
diff --git a/doc/src/sgml/ref/create_trigger.sgml b/doc/src/sgml/ref/create_trigger.sgml
new file mode 100644
index a8c0b57..42649d2
*** a/doc/src/sgml/ref/create_trigger.sgml
--- b/doc/src/sgml/ref/create_trigger.sgml
*************** UPDATE OF <replaceable>column_name1</rep
*** 501,509 ****
<para>
Modifying a partitioned table or a table with inheritance children fires
! statement-level triggers directly attached to that table, but not
statement-level triggers for its partitions or child tables. In contrast,
! row-level triggers are fired for all affected partitions or child tables.
If a statement-level trigger has been defined with transition relations
named by a <literal>REFERENCING</literal> clause, then before and after
images of rows are visible from all affected partitions or child tables.
--- 501,510 ----
<para>
Modifying a partitioned table or a table with inheritance children fires
! statement-level triggers directly attached to the referenced table, but not
statement-level triggers for its partitions or child tables. In contrast,
! row-level triggers are fired on the rows in effected partitions or
! child tables, even if they are not referenced in the query.
If a statement-level trigger has been defined with transition relations
named by a <literal>REFERENCING</literal> clause, then before and after
images of rows are visible from all affected partitions or child tables.
view thread (13+ messages) latest in thread
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: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: Trigger behaviour not as stated
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox