| From: | Douglas McNaught <doug(at)mcnaught(dot)org> | 
|---|---|
| To: | "Bima Djaloeis" <bima(dot)djaloeis(dot)uni(at)googlemail(dot)com> | 
| Cc: | pgsql-novice(at)postgresql(dot)org, pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: starting a stored procedure+rule AFTER an insert | 
| Date: | 2007-10-08 13:00:59 | 
| Message-ID: | 87ve9hsqus.fsf@suzuka.mcnaught.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
"Bima Djaloeis" <bima(dot)djaloeis(dot)uni(at)googlemail(dot)com> writes:
> I have implemented a stored procedure that writes out the newest DB
> entry on insert, and combined it with a rule.
>
> 1) create function newcache() returns void AS 'newCache', 'newCache' language
> c;
> 2) create rule newcacherule AS on insert to caches do also select newcache();
>
> The problem is that newcacherule fires BEFORE the insert has taken
> place, so effectively, I always just get the 2nd newest entry to
> write into my text file while the newest entry is "stuck in the
> queue" until a new insert come. How can I execute my rule AFTER the
> insert has taken place?
Rules effectively happen at query parse time.  You probably want an
AFTER trigger instead.
-Doug
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Merlin Moncure | 2007-10-08 14:18:00 | SPI dumping core on large palloc | 
| Previous Message | A. Kretschmer | 2007-10-08 13:00:47 | Re: Problem with SELECT |