Sergey Konoplev escribió:
> >> I understand the POV of both Evan and you here. However, I think that
> >> there might be a good solution for this particular case - to allow
> >> dropping functions by name only if it has the only signature, but if
> >> there are 2 or more signatures then print an error specifying all the
> >> forms of the function, eg.:
> >>
> >> ERROR: Can not drop function 'foo' because it has more then one
> >> signature: foo(integer), foo(text).
> I was writing about some kind of a compromise.
I wonder if it'd work to have some way to specify wildcards for function
arguments. For instance, if you say
DROP FUNCTION foo('*');
all versions with a single argument are dropped;
DROP FUNCTION foo('*', '*');
drops all versions with two arguments. If you do
DROP FUNCTION foo('*+');
then all versions are dropped regardless of number of arguments.
Maybe some kind of keyword instead of the funny-looking operators would
work better --- not proposing that exact syntax, only the general idea.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services