On Fri, May 26, 2006 at 11:21:32PM -0400, Tom Lane wrote:
> James William Pye <pgsql@jwp.name> writes:
> > So is this "fix your broken PL" or "pg_dump should only be doing that for C
> > language functions"?
>
> Offhand it seems to me that pg_dump is behaving reasonably: it's storing
> probin if it sees something there to be stored. The asymmetry is in the
> backend, specifically functioncmds.c's interpret_AS_clause(): it has a
> hardwired assumption that probin is only relevant to C functions.
>
> Feel free to propose a saner definition. AFAICS the current coding
> makes probin useless for all except C functions, so I think it could
> be improved.
I guess there are two ways to go about it. Simply remove the assumption that
probin is only relevant to C functions; perhaps allowing a hardwired exception
for builtin languages where allowing probin to be set would be deemed unsightly
(ie, the easy way ;). Or, add a column to pg_language that specifies the
language's probin usage so that pg_dump and the backend have an idea of how to
handle these things for the given language(the "takes a bit more work" way).
[I imagine the former could gracefully lead into the latter as well.]