Michael Nolan <htfoot@xxxxxxxxx> writes: > Shouldn't declaring a field that is also an OUT parameter throw an error? No. The DECLARE is a block nested within the function, and the parameter is declared at function scope. So this is a standard case of an inner declaration masking an outer one. Possibly plpgsql_check can be set to complain about such cases, but they're legal according to the language specification. regards, tom lane