Re: triggers and execute... - Mailing list pgsql-general

From Dimitri Fontaine
Subject Re: triggers and execute...
Date
Msg-id 200904301203.14855.dfontaine@hi-media.com
Whole thread Raw
In response to triggers and execute...  (Scott Marlowe <scott.marlowe@gmail.com>)
List pgsql-general
On Monday 27 April 2009 22:32:22 Scott Marlowe wrote:
> OK, I'm hitting a wall here.  I've written this trigger for partitioning:
>
> create or replace function page_access_insert_trigger ()
> returns trigger as $$
> DECLARE
>     part text;
>     q text;
> BEGIN
>     part = to_char(new."timestamp",'YYYYMMDD');
>     q = 'insert into page_access_'||part||' values (new.*)';

What you want looks like this (thanks RhodiumToad):

 'INSERT INTO page_access_' || part ||
 'SELECT (' || quote_literal(textin(record_out(NEW))) || '::page_access).*;'

That's supposing you have a parent table named page_access, of course. And
casting this way has drawbacks too (which I can't recall at this moment), but
I've been using this live for maybe more than a year now without any problem.

> It works.  So, how am I supposed to run it with dynamic table names?

Hack your way around, partitioning is not yet there "for real"...
--
dim

Attachment

pgsql-general by date:

Previous
From: Erik Jones
Date:
Subject: Re: triggers and execute...
Next
From: Keaton Adams
Date:
Subject: How to begin to debug FATAL: invalid frontend message type 77 error messages?