Thread: pgsql: Propagate trigger arguments to partitions

pgsql: Propagate trigger arguments to partitions

From
Alvaro Herrera
Date:
Propagate trigger arguments to partitions

We were creating the cloned triggers with an empty list of arguments,
losing the ones that had been specified by the user when creating the
trigger in the partitioned table.  Repair.

This was forgotten in commit 86f575948c77.

Author: Patrick McHardy
Reviewed-by: Tomas Vondra
Discussion: https://postgr.es/m/20190709130027.amr2cavjvo7rdvac@access1.trash.net
Discussion: https://postgr.es/m/15752-123bc90287986de4@postgresql.org

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/1637d959d618886ac6ca59cc3c3785ce5ba06b40

Modified Files
--------------
src/backend/commands/tablecmds.c       | 23 ++++++++++++++++++++++-
src/backend/commands/trigger.c         |  1 -
src/test/regress/expected/triggers.out | 24 ++++++++++++++++++++++++
src/test/regress/sql/triggers.sql      | 23 +++++++++++++++++++++++
4 files changed, 69 insertions(+), 2 deletions(-)


Re: pgsql: Propagate trigger arguments to partitions

From
Michael Paquier
Date:
Hi Alvaro,

On Tue, Jul 09, 2019 at 09:23:45PM +0000, Alvaro Herrera wrote:
> Propagate trigger arguments to partitions
>
> We were creating the cloned triggers with an empty list of arguments,
> losing the ones that had been specified by the user when creating the
> trigger in the partitioned table.  Repair.
>
> This was forgotten in commit 86f575948c77.

This commit has broken the buildfarm on REL_11_STABLE for a couple of
animals:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=prion&dt=2019-07-10%2006%3A27%3A02

/home/ec2-user/bf/root/REL_11_STABLE/pgsql.build/../pgsql/src/backend/commands/tablecmds.c:
In function ‘CloneRowTriggersToPartition’:
/home/ec2-user/bf/root/REL_11_STABLE/pgsql.build/../pgsql/src/backend/commands/tablecmds.c:15283:4:
error: ‘for’ loop initial declarations are only allowed in C99 mode
    for (int i = 0; i < trigForm->tgnargs; i++)

This gets fixed with the attached.  I would personally keep the code
consistent for v12 and HEAD for this code path, but I am fine to let
you decide the way you prefer.
--
Michael

Attachment

Re: pgsql: Propagate trigger arguments to partitions

From
Alvaro Herrera
Date:
On 2019-Jul-10, Michael Paquier wrote:

Hello

> This commit has broken the buildfarm on REL_11_STABLE for a couple of
> animals:
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=prion&dt=2019-07-10%2006%3A27%3A02

Argh.  You say "a couple", you mean "half the buildfarm for that branch"
:-(

> error: ‘for’ loop initial declarations are only allowed in C99 mode
>     for (int i = 0; i < trigForm->tgnargs; i++)
> 
> This gets fixed with the attached.  I would personally keep the code
> consistent for v12 and HEAD for this code path, but I am fine to let
> you decide the way you prefer.

I kinda like block-scoped variables, braindead though they are in
C, so I'll just patch pg11.  It's not like this code changes too much
anyway (famous last words).

Thanks for pinging

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: pgsql: Propagate trigger arguments to partitions

From
Michael Paquier
Date:
On Wed, Jul 10, 2019 at 08:53:36AM -0400, Alvaro Herrera wrote:
> I kinda like block-scoped variables, braindead though they are in
> C, so I'll just patch pg11.  It's not like this code changes too much
> anyway (famous last words).

Thanks!  That's fine by me.
--
Michael

Attachment