Tom,
I believe that we should raise an exception if the SELECT statement does not
match the ROWTYPE, though of course we'd have to provide a
backward-compatible GUC in case anyone is counting on the current behavior.
Personally, since %ROWTYPE has no efficiency gain in PL/pgSQL over RECORD, I
seldom use it, though I use RECORD about 200 times per project.
If you're still interested, I will consult my PL/SQL bible this afternoon to
see what Oracle 8i does in this case.
--
Josh Berkus
Aglio Database Solutions
San Francisco