Re: [HACKERS] Postgresql bug report - unexpected behavior of suppress_redundant_updates_trigger

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Artus de benque <artusdebenque(at)gmail(dot)com>, Postgres-Bugs <pgsql-bugs(at)postgresql(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [HACKERS] Postgresql bug report - unexpected behavior of suppress_redundant_updates_trigger
Date: 2017-06-19 17:19:06
Message-ID: 20170619171906.4lvo4dozwuufpfiy@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

Tom Lane wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> > On Mon, Jun 19, 2017 at 11:59 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >> I don't think it's a bug, I think it's an intentional design tradeoff.
> >> To suppress an update in this case, the trigger would have to grovel
> >> through the individual fields and detoast them before comparing.
> >> That would add a lot of cycles, and only seldom add successes.
> >>
> >> Possibly we should adjust the documentation so that it doesn't imply
> >> that this trigger guarantees to suppress every no-op update.
>
> > That doesn't sound like a very plausible argument to me. I don't
> > think that a proposal to add a function named
> > sometimes_suppress_redundant_updates_trigger() would've attracted many
> > votes.
>
> You'd be wrong. The entire point of this trigger is to save cycles,
> so having it eat a lot of cycles only to fail is not an improvement.

I suppose that either behavior may be desirable depending on
circumstances. Maybe it is possible to have each installed trigger be
configurable so that it can select either behavior. (Maybe use the
trigger argument as a column list, and for each column in the list, do a
full detoast and compare instead of relying on toast pointer equality).

The current behavior seems more convenient in more cases, and so should
remain the default.

But this sounds like an additional feature, not a bug.

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

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruno Richard 2017-06-19 17:29:34 PostgreSQL hot standby Hangs due to AccessExclusiveLock on pg_attribute or pg_type tables
Previous Message Artus de benque 2017-06-19 17:00:59 Re: [HACKERS] Postgresql bug report - unexpected behavior of suppress_redundant_updates_trigger

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2017-06-19 17:19:53 Re: GSoC 2017 weekly progress reports (week 3)
Previous Message Peter Geoghegan 2017-06-19 17:10:03 Re: Decimal64 and Decimal128