Dennis Bjorklund <db@zigo.dhs.org> writes:
> I've implemented function argument names,
I have reviewed and applied this patch, with some editorialization.
> Other languages then pl/pgsql should also work to extend, but I've not
> looked at that. The langage sql I've planned to look at, but since that
> language is not as separate as the others I did not want to do it yet.
I am not real sure what support for this should look like in SQL
functions. From the point of view of a SQL command inside a function,
it seems very close to a global SQL variable, which is a notion that
we've always shied away from. The PL languages are more comfortable
with such things, and should probably get fixed first.
Also, wouldn't it be a good idea for psql's \df or \df+ commands to
show the argument names?
> What's missing are changes to the documentation.
Yup. Please supply. Note that I fixed the grammar to allow param names
to appear in *any* function parameter list, not only CREATE FUNCTION.
For instance "DROP FUNCTION x(p int)". (I believe that the pg_dump
patch requires this, in fact.)
> For the changes in pl_comp.c it feels like I'm breaking the abstraction
> when I pull out the argument names from the array.
So you were. I didn't do it that way.
> The changes to the system tables was harder then I thought it was going to
> be. The code in pg contains a lot of hard coded assumptions of what these
> looks like. For example, prosrc has to be the first vararg element in
> pg_proc, which I learned the hard way..
That's a bug; fixed. It is true that changing the bootstrapped tables
like pg_class and pg_proc requires changes in more than one place,
mostly undocumented places. But you did it, and lived to tell the tale ;-).
Be glad. Do you feel like contributing some documentation about what's
involved?
regards, tom lane