Re: Trigger functions

From: Jan Wieck <JanWieck(at)Yahoo(dot)com>
To: marc(dot)drouin(at)fondex(dot)ca
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Trigger functions
Date: 2003-04-02 19:41:12
Message-ID: 3E8B3CD8.B293C1FD@Yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

> Marc Drouin wrote:
>
> Hi Jan,
>
> The trigger function updates the table. At the request of Tom Lane I
> will post the actual table and trigger
> function for you guys to have a better idea.

Gives me a fair enough idea of what's going on. Your trigger will get
fired for every single row inserted and does (probably) an unconditional
recomputation of ALL derived values for the WHOLE table ... let me
guess, an UPDATE on that table without a WHERE clause runs approximately
2 seconds, right ;-)

Change the thing into a BEFORE INSERT trigger, don't use UPDATE, assign
the computed values to the NEW row (just do "NEW.column := <expr>") and
finally let the trigger RETURN NEW.

Jan

>
> Marc
>
> -----Original Message-----
> From: pgsql-general-owner(at)postgresql(dot)org
> [mailto:pgsql-general-owner(at)postgresql(dot)org]On Behalf Of Jan Wieck
> Sent: Tuesday, April 01, 2003 10:44 PM
> To: Tom Lane
> Cc: marc(dot)drouin(at)fondex(dot)ca; pgsql-general(at)postgresql(dot)org
> Subject: Re: [GENERAL] Trigger functions
>
> Tom Lane wrote:
> >
> > Marc Drouin <marc(dot)drouin(at)fondex(dot)ca> writes:
> > > The function is triggered on insert and is supposed to fill a
> field in the
> > > table based on three other fields of the same table (ex: field D =
> Field A X
> > > Field B X Field C). The addition of the trigger to teh table has
> slowed
> > > down the insert procedd considerably. It takes approximatly two
> second for
> > > a simple insert.
> >
> > That's pretty slow, all right, but if you're not going to show us
> the
> > details there's not much advice we can offer.
>
> Does the trigger update the table or the pseudo row NEW?
>
> Jan
>
> --
> #======================================================================#
>
> # It's easier to get forgiveness for being wrong than for being right.
> #
> # Let's break this rule - forgive me.
> #
> #================================================== JanWieck(at)Yahoo(dot)com
> #
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to
> majordomo(at)postgresql(dot)org)

--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

In response to

Browse pgsql-general by date

  From Date Subject
Next Message alex b. 2003-04-02 19:42:26 select bla, AVG(asd) -- problem
Previous Message Tom Lane 2003-04-02 19:33:19 Re: Backend often crashing