Hi, We cannot to declare variable with referenced type on other composite variable. This limit is probably artificial, because any composite type is any type too in PostgreSQL.
The issue: referencing on composite variables doesn't work do $$ declare x int; y x%type; begin end; $$; -- ok do $$ declare x pg_class; y x%type; begin end; $$; -- invalid type name "x%type" do $$ declare x pg_class; y x%rowtype; begin end; $$; -- relation "x" does not exist The %ROWTYPE needs a record in pg_class. Probably we should not to change it. The change can bring a compatibility issues. So there are two possibilities: 1. %TYPE can be used for any kind of variables. This behave will be consistent with polymorphic parameters - we have "anyelement", and we have not "anyrow". 2. introduce new keyword - %RECTYPE .. it can work, but there will be gap between polymorphic parameters. Comments, notices? Regards Pavel