Reece Hart <reece(at)harts(dot)net> wrote:
> c := 'INSERT INTO ' || ctable || ' VALUES (NEW.*)';
> Now that my only idea is gone, the question for y'all is: how?
>
> ?(Okay, I actually do have one more idea: construct the insert values
> list with quote_literal. I'm hoping there's a better way.)
You need to do so in 8.3:
EXECUTE 'INSERT INTO ' || ctable ||
' VALUES( (' || quote_literal(new) || '::' || ptable || ').*)';
In 8.4, the next release, you will be able to use a better way:
EXECUTE 'INSERT INTO ' || ctable || ' VALUES( ($1).* )' USING new;
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center