>> How much of this pain would go away if we changed over to the arguably
>> correct (as in Or*cle does it that way) scoping for names, wherein the
>> parser first tries to match a name against column names of tables of the
>> current SQL statement, and only failing that looks to see if they are
>> plpgsql variables?
-1 on this. If we're to have definite rules, I would prefer that stuff
gets assumed to be a variable *first*, and then object definitions are
only examined after the system fails to find a matching variable name.
That priority makes it much easier to debug a function than the Oracle way.
--Josh