Re: bugfix: --echo-hidden is not supported by \sf statements - Mailing list pgsql-hackers

From Stephen Frost
Subject Re: bugfix: --echo-hidden is not supported by \sf statements
Date
Msg-id 20130227134726.GE16142@tamriel.snowman.net
Whole thread Raw
In response to Re: bugfix: --echo-hidden is not supported by \sf statements  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: bugfix: --echo-hidden is not supported by \sf statements
List pgsql-hackers
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

pgsql-hackers by date:

Previous
From: Albe Laurenz
Date:
Subject: Broken link in contrib/fuzzystrmatch/dmetaphone.c
Next
From: Stephen Frost
Date:
Subject: Re: Strange Windows problem, lock_timeout test request