| From: | Dimitri Fontaine <dfontaine(at)hi-media(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: triggers and execute... |
| Date: | 2009-04-30 10:03:10 |
| Message-ID: | 200904301203.14855.dfontaine@hi-media.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Henry | 2009-04-30 10:03:21 | PANIC: right sibling's left-link doesn't match |
| Previous Message | Phil Couling | 2009-04-30 09:01:14 | Do TEMP Tables have an OID? Can this be a problem if used too frequently? |