Pavel,
* Pavel Stehule (pavel.stehule@gmail.com) wrote:
> this is not hard task, hard task is correct identification related function
>
> see FuncnameGetCandidates() function
We're not limited to writing C code here though and I think we've
already solved it, though I admit it wasn't where I originally thought.
> I am sure, so we don't would to duplicate this function on client side.
It took me a bit to go figure out where it is, but I knew we had it.
Look at COMPLETE_WITH_FUNCTION_ARG and Query_for_list_of_arguments in
src/bin/psql/tab-complete.c. We can already fully tab-complete a
function and its arguments, down to knowing that the function+args is
unique. I have no idea why \df and friends aren't already supporting
this (is there a real reason or just unintentional omission? would love
to know..), but it works just fine for DROP FUNCTION and ALTER FUNCTION.
Would be really nice to have that work for \df, \ef, \sf, CREATE OR
REPLACE FUNCTION, and anywhere else that makes sense.
With support for what tab-complete returns (arg types w/o arg names) and
\df's function list result set (arg names + arg types), I think we can
happily close this out. I don't think we need to stress about people
complaining that \ef myfunc(int) doesn't find a matching function when
they can do \ef myfunc(int<tab> and have it tab-complete the rest.
Thanks,
Stephen