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

From Tom Lane
Subject Re: bugfix: --echo-hidden is not supported by \sf statements
Date
Msg-id 7097.1361905964@sss.pgh.pa.us
Whole thread Raw
In response to Re: bugfix: --echo-hidden is not supported by \sf statements  (Stephen Frost <sfrost@snowman.net>)
Responses Re: bugfix: --echo-hidden is not supported by \sf statements  (Stephen Frost <sfrost@snowman.net>)
Re: bugfix: --echo-hidden is not supported by \sf statements  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
Stephen Frost <sfrost@snowman.net> writes:
> * Pavel Stehule (pavel.stehule@gmail.com) wrote:
>> Minimally \ef needs exact specification - you cannot to edit more
>> functions in same time. So we have to be able identify if there are no
>> selected function or if there are more functions. We can write a
>> auxiliary function that returns list of function oids for specified
>> signature - but it is relative much more code and it is hard to
>> implement for older versions - but we can use regproc and regprocedure
>> there.

> Using regproc and regprocedure is the wrong approach here and will be a
> pain to maintain as well as a backwards incompatible change to how they
> behave.  We have solved this problem already and what \df does is exactly
> the right answer.

Well, actually I think Pavel's got a point.  What about overloaded
functions?  In \df we don't try to solve that problem, we just print
them all:

regression=# \df abs                         List of functions  Schema   | Name | Result data type | Argument data
types|  Type  
 
------------+------+------------------+---------------------+--------pg_catalog | abs  | bigint           | bigint
       | normalpg_catalog | abs  | double precision | double precision    | normalpg_catalog | abs  | integer
|integer             | normalpg_catalog | abs  | numeric          | numeric             | normalpg_catalog | abs  |
real            | real                | normalpg_catalog | abs  | smallint         | smallint            | normal
 
(6 rows)

In \ef you need to select just one of these functions, but \df doesn't
have any ability to do that:

regression=# \df abs(int)                      List of functionsSchema | Name | Result data type | Argument data types
|Type 
 
--------+------+------------------+---------------------+------
(0 rows)

Now, maybe we *should* teach \df about handling parameter types and
then \ef can piggyback on it, but that code isn't there now.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Review : Add hooks for pre- and post-processor executables for COPY and \copy
Next
From: Josh Berkus
Date:
Subject: Re: 9.2.3 crashes during archive recovery