Re: Problems with trigger and function. - Mailing list pgsql-novice

From Michael Fuhr
Subject Re: Problems with trigger and function.
Date
Msg-id 20050613141000.GA81995@winnie.fuhr.org
Whole thread Raw
In response to Problems with trigger and function.  ("Ville Leinonen" <ville.leinonen@megata.vu>)
List pgsql-novice
On Mon, Jun 13, 2005 at 02:15:17PM +0300, Ville Leinonen wrote:
>
> Id like to to function with plperlu which write's db-events to log-file.

What version of PostgreSQL are you using?  PL/Perl trigger functions
are supported only in 8.0 and later.

> My trigger looks like this:
>
> CREATE TRIGGER trapd
>      BEFORE INSERT OR UPDATE ON events FOR EACH ROW
>      EXECUTE PROCEDURE write_trapd();
>
> But now i have a problem how to write that event information for specific
> file. I dont want to write whole event, only part offit.

It's not clear what you're having trouble with.  Getting the event
info?  If so then see the documentation for the $_TD hash reference:

http://www.postgresql.org/docs/8.0/static/plperl-triggers.html

If something else then please be more specific.

> My goal is to read that log file (eg. tail) and when there comes new event
> some other programs executes some other programs.

That might not be the best design because the log file won't have
transaction semantics.  Suppose you update the table and write a
message to the log file, then some other program reads the log file
and does something based on the update, then you roll back the
update.  Now you've done something based on an update that effectively
didn't happen.  You might wish to consider using NOTIFY and LISTEN
if you want to do event notification.

http://www.postgresql.org/docs/8.0/static/sql-notify.html
http://www.postgresql.org/docs/8.0/static/sql-listen.html
http://www.postgresql.org/docs/8.0/static/libpq-notify.html

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

pgsql-novice by date:

Previous
From: János
Date:
Subject: Re: need suggestion for server sizing
Next
From: Tom Lane
Date:
Subject: Re: Steps taken through while transmitting binary data