change in behaviour for format_type() call - Mailing list pgsql-hackers

From Rushabh Lathia
Subject change in behaviour for format_type() call
Date
Msg-id CAGPqQf3RB2q-d2Awp_-x-Ur6aOxTUwnApt-vm-iTtceZxYnePg@mail.gmail.com
Whole thread Raw
Responses Re: change in behaviour for format_type() call  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Commit a26116c6cbf4117e8efaa7cfc5bacc887f01517f changed the behaviour 
for format_type.

Prior to commit, format_type() used to set typemod_given to false for
typemode = NULL. 

format_type()
..
if (PG_ARGISNULL(1))
result = format_type_internal(type_oid, -1, false, true, false);
else
{
typemod = PG_GETARG_INT32(1);
result = format_type_internal(type_oid, typemod, true, true, false);
}
..

With the commit format_type() always set the FORMAT_TYPE_TYPEMOD_GIVEN
flag even when typemode is NULL (-1).

Below are the difference it's making to the query output:

Before commit:

postgres@95320=#select format_type('bpchar'::regtype, null);
 format_type 
-------------
 character
(1 row)

postgres@95320=#select format_type('bit'::regtype, null);
 format_type 
-------------
 bit
(1 row)

After commit:

postgres@90169=#select format_type('bpchar'::regtype, null);
 format_type 
-------------
 bpchar
(1 row)

postgres@90169=#select format_type('bit'::regtype, null);
 format_type 
-------------
 "bit"
(1 row)

Is this expected behaviour? attaching patch to get back the older
behaviour.

Thanks,


Regards,
Rushabh Lathia
Attachment

pgsql-hackers by date:

Previous
From: Arseny Sher
Date:
Subject: Re: Why chain of snapshots is used in ReorderBufferCommit?
Next
From: Andres Freund
Date:
Subject: Re: to_typemod(type_name) information function