On Wed, Apr 23, 2008 at 4:20 AM, Merlin Moncure <[EMAIL PROTECTED]> wrote:
> On Tue, Apr 22, 2008 at 4:10 PM, Gurjeet Singh <[EMAIL PROTECTED]> > wrote: > > RECORD.* doesn't work in plpgsql, but NEW.* and OLD.* do in trigger > > functions created in plpgsql. > > > > The example function process_emp_audit() on page > > http://www.postgresql.org/docs/8.3/interactive/plpgsql-trigger.html , > shows > > that we can use OLD.* and NEW.* as: > > > > INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*; > > > > but if I try to do the same thing in my own plpgsql function, it > throws > > a runtime ERROR: > > > > create table t1( a int, b char ); > > create table t2( a int, b char ); > > > > create or replace function log_rotate() returns void as $$ > > declare > > rec record; > > begin > > > > for rec in delete from t2 returning * loop > <highlight> > > > insert into t1 select 1, rec.*; -- throws ERROR: record type > has > <highlight> > > > not been registered > > end loop; > > > > end; > > $$ language 'plpgsql'; > > you can do this: > <snip> > > for rec in delete from t2 returning 1, * loop > Sorry... that 1 in SELECT 1, rec.* was a leftover from a trial workarond... please ignore that. Best regards, -- [EMAIL PROTECTED] [EMAIL PROTECTED] gmail | hotmail | indiatimes | yahoo }.com EnterpriseDB http://www.enterprisedb.com Mail sent from my BlackLaptop device