pgsql: Propagate trigger arguments to partitions

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

pgsql: Propagate trigger arguments to partitions

Álvaro Herrera
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@...
Discussion: https://postgr.es/m/15752-123bc90287986de4@...

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(-)

Reply | Threaded
Open this post in threaded view
|

Re: pgsql: Propagate trigger arguments to partitions

Michael Paquier-2
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

buildfarm-fix-11.patch (833 bytes) Download Attachment
signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: pgsql: Propagate trigger arguments to partitions

Alvaro Herrera-9
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


Reply | Threaded
Open this post in threaded view
|

Re: pgsql: Propagate trigger arguments to partitions

Michael Paquier-2
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

signature.asc (849 bytes) Download Attachment