Re: Determining weather a query fired a trigger

From: Martijn van Oosterhout <kleptog(at)svana(dot)org>
To: Gordon <gordon(dot)mcvey(at)ntlworld(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Determining weather a query fired a trigger
Date: 2008-04-08 15:08:49
Message-ID: 20080408150849.GE31397@svana.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Apr 08, 2008 at 07:03:07AM -0700, Gordon wrote:
> But I do have one concern regarding performance. The tsvector only
> needs to be updated if the title, summary, or keywords fields have
> changed. If they are the same after an update then there is no need
> to run them. Doing so would only cause a new tsvector to be generated
> when it wasn't necessary.

The usual trick is to check if the fields changed:

IF OLD.title != NEW.title OR OLD.summary != NEW.summary OR ... THEN
update_tsvector()
END

> So what I want to know is, is there a way to tell if executing a query
> caused a trigger to fire? I don't need anything fancy like notify
> and listen, I just want to see what the database is doing for testing
> purposes. For example by looking at the logs and seeing what activity
> was caused by a given query. Does this stuff get logged?

You can access the string sent by the client, but that won't help you
if the trigger was triggered within a stored procedure.

Have a nice day,
--
Martijn van Oosterhout <kleptog(at)svana(dot)org> http://svana.org/kleptog/
> Please line up in a tree and maintain the heap invariant while
> boarding. Thank you for flying nlogn airlines.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message otakarek 2008-04-08 15:12:39 Trouble with foreign key
Previous Message Alvaro Herrera 2008-04-08 15:08:35 Re: plperlu and perl 5.10