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
        insert into t1 select 1, rec.*;  -- throws ERROR:  record type has
not been registered
    end loop;

end;
$$ language 'plpgsql';

select log_rotate();

    Is this intentional, or is this a bug?

Best regards,
-- 
[EMAIL PROTECTED]
[EMAIL PROTECTED] gmail | hotmail | indiatimes | yahoo }.com

EnterpriseDB http://www.enterprisedb.com

Mail sent from my BlackLaptop device

Reply via email to