Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>
>>I like the idea in general, but maybe instead there should be a new
>>overloaded version of the existing function names that accepts an
>>additional bool argument. Without the argument, behavior would be as it
>>is now; with it, you could specify the old or new behavior.
>
> Um, maybe I'm confused about the context, but aren't we talking about C
> function names here? No overloading is possible in C ...
I was thinking in terms of overloaded SQL function names. For example,
in addition to dblink_exec(text) and dblink_exec(text,text) we create
dblink_exec(text,bool) and dblink_exec(text,text,bool).
Currently both SQL versions of dblink_exec are implemented by a single C
level function. But yes, we'd need another C level function to support
the new SQL functions because there would be no way to distinguish the 2
two-argument versions otherwise. (Actually, now I'm wondering if we
could use a single C function for all four SQL versions -- between
PG_NARGS() and get_fn_expr_argtype() we should be able to figure out how
we were called, shouldn't we?)
Joe