Re: psql should show disabled internal triggers

From: Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)2ndquadrant(dot)com>, mailings(at)oopsware(dot)de
Subject: Re: psql should show disabled internal triggers
Date: 2014-02-13 03:21:40
Message-ID: CAFcNs+qp9khOsON8tUDiOo7Je9xbsXKoS2u=+Ati7wbpZBEK0A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Feb 13, 2014 at 12:04 AM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
>
> On Thu, Nov 21, 2013 at 11:59:51PM -0200, Fabrízio de Royes Mello wrote:
> > On Fri, Oct 25, 2013 at 3:37 PM, fabriziomello <fabriziomello(at)gmail(dot)com>
wrote:
> > >
> > > On 2013-09-18 15:15:55 +0200, Bernd Helmle wrote:
> > > > On 2013-09-18 15:15:55 +0200, Bernd Helmle wrote:
> > > > > --On 18. September 2013 13:52:29 +0200 Andres Freund
> > > > > &lt;andres@&gt; wrote:
> > > > >
> > > > > >If you do ALTER TABLE ... DISABLE TRIGGER ALL; and then
individually
> > > > > >re-enable the disabled triggers it's easy to miss internal
triggers.
> > > > > >A \d+ tablename will not show anything out of the ordinary for
that
> > > > > >situation since we don't show internal triggers. But foreign key
checks
> > > > > >won't work.
> > > > > >So, how about displaying disabled internal triggers in psql?
> > > > >
> > > > > Hi had exactly the same concerns this morning while starting to
look at
> > > > the
> > > > > ENABLE/DISABLE constraint patch. However, i wouldn't display them
as
> > > > > triggers, but maybe more generally as "disabled constraints" or
such.
> > > >
> > > > Well, that will lead the user in the wrong direction, won't it? They
> > > > haven't disabled the constraint but the trigger. Especially as we
> > > > already have NOT VALID and might grow DISABLED for constraint
> > > > themselves...
> > > >
> > >
> > > Hi,
> > >
> > > The attached patch [1] enable PSQL to list internal disabled triggers
in \d
> > > only in versions >= 9.0.
> > >
> > > [1] psql-display-all-triggers-v1.patch
> > > <http://postgresql.1045698.n5.nabble.com/file/n5775954/
> > psql-display-all-triggers-v1.patch>
>
> As others, I am concerned about people being confused when funny-looking
> trigger names suddenly appearing when you disable all table triggers.
>
> What I ended up doing is to create a user and internal section when
> displaying disabled triggers:
>
> Disabled user triggers:
> check_update BEFORE UPDATE ON orders FOR EACH ROW EXECUTE
PROCEDURE trigf()
> Disabled internal triggers:
> "RI_ConstraintTrigger_c_16409" AFTER INSERT ON orders FROM
customer NOT DEF ...
> "RI_ConstraintTrigger_c_16410" AFTER UPDATE ON orders FROM
customer NOT DEF ...
>
> I kept the "Triggers" section unchanged, showing only user triggers. I
> also updated the code to handle 8.3+ servers.
>
> Patch attached.
>

Makes more sense than my previous patch...

The code looks fine to me!!

Regards,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Timbira: http://www.timbira.com.br
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2014-02-13 03:29:13 Re: Recovery inconsistencies, standby much larger than primary
Previous Message Bruce Momjian 2014-02-13 03:10:58 Re: Prevent pg_basebackup -Fp -D -?