Re: Declarative partitioning - another take

From: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, pgsql-hackers-owner(at)postgresql(dot)org
Subject: Re: Declarative partitioning - another take
Date: 2017-05-02 07:30:07
Message-ID: b9b46016-bfef-84ad-7773-16b050be2ab4@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2017/05/01 21:30, Robert Haas wrote:
> On Mon, May 1, 2017 at 12:18 AM, Amit Langote
> <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> wrote:
>> Attached updated patch.
>
> Committed, except for this bit:

Thanks.

> + A statement-level trigger defined on partitioned tables is fired only
> + once for the table itself, not once for every table in the partitioning
> + hierarchy. However, row-level triggers of any affected leaf partitions
> + will be fired.
>
> The first sentence there has a number of issues. Grammatically, there
> is an agreement problem: trigger is singular, but partitioned table is
> plural, and one trigger isn't defined across multiple tables. It
> would have to say something like "A statement-level trigger defined on
> a partitioned table". But even with that correction, it's not really
> saying what you want it to say. Nobody would expect that the same
> statement-level trigger would be fired multiple times. The issue is
> whether statement-level triggers on the partitions themselves will be
> fired, not the statement-level trigger on the partitioned table.
> Also, if this applies to inheritance as well as partitioning, then why
> mention only partitioning? I think we might want to document
> something more here, but not like this.

You're right. I agree that whatever text we add here should be pointing
out that statement-level triggers of affected child tables are not fired,
when root parent is specified in the command.

Since there was least some talk of changing that behavior for regular
inheritance so that statement triggers of any affected children are fired
[1], I thought we shouldn't say something general that applies to both
inheritance and partitioning. But since nothing has happened in that
regard, we might as well.

How about the attached?

Thanks,
Amit

[1]
https://www.postgresql.org/message-id/cd282adde5b70b20c57f53bb9ab75e27@biglumber.com

Attachment Content-Type Size
0001-Clarify-statement-trigger-behavior-with-inheritance.patch text/x-diff 1.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2017-05-02 07:42:26 Re: scram and \password
Previous Message Vladimir Borodin 2017-05-02 07:25:27 Re: [PROPOSAL] Use SnapshotAny in get_actual_variable_range