Thread: BUG #17957: psql-16beta1 \df+ does not show the function body

BUG #17957: psql-16beta1 \df+ does not show the function body

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      17957
Logged by:          Boris Z
Email address:      bzm@2bz.de
PostgreSQL version: 16beta1
Operating system:   OSX, Linux
Description:

Hi,

The release notes do not mention \df+. 
https://www.postgresql.org/docs/16/release-16.html#RELEASE-16-PSQL

for testing I used this function, but any user function will do.

CREATE OR REPLACE FUNCTION test_function()
RETURNS bigint
AS $$
    SELECT 1;
$$ LANGUAGE sql
STABLE
PARALLEL SAFE;

When using psql (16beta1)
=# \df+ test_function
-[ RECORD 1 ]-------+--------------
Schema              | public
Name                | test_function
Result data type    | bigint
Argument data types |
Type                | func
Volatility          | stable
Parallel            | safe
Owner               | bz
Security            | invoker
Access privileges   |
Language            | sql
Internal name       |
Description         |

using psql-15.3 it works as expected
=# \df+ test_function
-[ RECORD 1 ]-------+--------------
Schema              | public
Name                | test_function
Result data type    | bigint
Argument data types |
Type                | func
Volatility          | stable
Parallel            | safe
Owner               | bz
Security            | invoker
Access privileges   |
Language            | sql
Source code         |              +
                    |     SELECT 1;+
                    |
Description         |


Re: BUG #17957: psql-16beta1 \df+ does not show the function body

From
Bruce Momjian
Date:
On Thu, Jun  1, 2023 at 05:57:19PM +0000, PG Bug reporting form wrote:
> The following bug has been logged on the website:
> 
> Bug reference:      17957
> Logged by:          Boris Z
> Email address:      bzm@2bz.de
> PostgreSQL version: 16beta1
> Operating system:   OSX, Linux
> Description:        
> 
> Hi,
> 
> The release notes do not mention \df+. 
> https://www.postgresql.org/docs/16/release-16.html#RELEASE-16-PSQL
> 
> for testing I used this function, but any user function will do.
> 
> CREATE OR REPLACE FUNCTION test_function()
> RETURNS bigint
> AS $$
>     SELECT 1;
> $$ LANGUAGE sql
> STABLE
> PARALLEL SAFE;
> 
> When using psql (16beta1)
> =# \df+ test_function
> -[ RECORD 1 ]-------+--------------
> Schema              | public
> Name                | test_function
> Result data type    | bigint
> Argument data types |
> Type                | func
> Volatility          | stable
> Parallel            | safe
> Owner               | bz
> Security            | invoker
> Access privileges   |
> Language            | sql
> Internal name       |
> Description         |
> 
> using psql-15.3 it works as expected
> =# \df+ test_function
> -[ RECORD 1 ]-------+--------------
> Schema              | public
> Name                | test_function
> Result data type    | bigint
> Argument data types |
> Type                | func
> Volatility          | stable
> Parallel            | safe
> Owner               | bz
> Security            | invoker
> Access privileges   |
> Language            | sql
> Source code         |              +
>                     |     SELECT 1;+
>                     |
> Description         |

We had this commit in PG 16:

    Author: Tom Lane <tgl@sss.pgh.pa.us>
    2023-03-02 [3dfae91f7] Show "internal name" not "source code" in psql's \df+ co
    
        Show "internal name" not "source code" in psql's \df+ command.
    
        Our previous habit of showing the full function body is really
        pretty unfriendly for tabular viewing of functions, and now that
        we have \sf and \ef commands there seems no good reason why \df+
        has to do it.  It still seems to make sense to show prosrc for
        internal and C-language functions, since in those cases prosrc
        is just the C function name; but then let's rename the column to
        "Internal name" which is a more accurate descriptor.
    
        Isaac Morland
    
        Discussion: https://postgr.es/m/CAMsGm5eqKc6J1=Lwn=ZONG=6ZDYWRQ4cgZQLqMuZGB1aVt_JBg@mail.gmail.com

I didn't think anyone would mind the change so I didn't document it in
the release notes --- should I?

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Only you can decide what is important to you.



Re: BUG #17957: psql-16beta1 \df+ does not show the function body

From
Tom Lane
Date:
Bruce Momjian <bruce@momjian.us> writes:
> On Thu, Jun  1, 2023 at 05:57:19PM +0000, PG Bug reporting form wrote:
>> The release notes do not mention \df+. 

> We had this commit in PG 16:
    
>         Show "internal name" not "source code" in psql's \df+ command.

> I didn't think anyone would mind the change so I didn't document it in
> the release notes --- should I?

I think it needs to be mentioned, since it's a nontrivial user-visible
behavioral change.  I'm not sure it's a compatibility item, but it
ought to be there somewhere.

            regards, tom lane



Re: BUG #17957: psql-16beta1 \df+ does not show the function body

From
Bruce Momjian
Date:
On Thu, Jun  1, 2023 at 06:18:09PM -0400, Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > On Thu, Jun  1, 2023 at 05:57:19PM +0000, PG Bug reporting form wrote:
> >> The release notes do not mention \df+. 
> 
> > We had this commit in PG 16:
>     
> >         Show "internal name" not "source code" in psql's \df+ command.
> 
> > I didn't think anyone would mind the change so I didn't document it in
> > the release notes --- should I?
> 
> I think it needs to be mentioned, since it's a nontrivial user-visible
> behavioral change.  I'm not sure it's a compatibility item, but it
> ought to be there somewhere.

Added, patch attached.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Only you can decide what is important to you.

Attachment