Re: CIDR output format - Mailing list pgsql-hackers

From Tom Lane
Subject Re: CIDR output format
Date
Msg-id 16520.977413731@sss.pgh.pa.us
Whole thread Raw
In response to Re: CIDR output format  (Larry Rosenman <ler@lerctr.org>)
Responses Re: CIDR output format  (Larry Rosenman <ler@lerctr.org>)
Re: CIDR output format  (Alex Pilosov <alex@pilosoft.com>)
List pgsql-hackers
Larry Rosenman <ler@lerctr.org> writes:
>> It would seem that the appropriate behavior would be to make the default
>> display format for CIDR be like "10.0.0.0/8".  Now the text() conversion
>> function already produces this same format.  I'd be inclined to leave
>> text() as-is and add a new conversion function with some other name
>> (suggestions anyone?) that produces the shorthand form "10/8" as text,
>> for those who prefer it.

> I would call it cidrshort(). 

I was thinking something like abbrev().  There is no need to put the
type name in the function; that's what function overloading is for.

> I assume this also is true for INET? 

INET doesn't use abbreviation of the address part anyway.  The only
display shortcut it has is to suppress "/32" when the netmask is 32.
I figured that text() could produce an un-abbreviated result for an
INET input (as it does now), and abbrev() could produce one with
/32 suppression.  In short:

Value            Default output    text()        abbrev()

'127.0.0.1/32'::inet    127.0.0.1    127.0.0.1/32    127.0.0.1
'127.0.0.1/32'::cidr    127.0.0.1/32    127.0.0.1/32    127.0.0.1/32
'127/8'::cidr        127.0.0.0/8    127.0.0.0/8    127/8

This would be a little bit inconsistent, because the default output
format would match text() for CIDR values but abbrev() for INET values.
But that seems like the most useful behavior to me.  Possibly others
will disagree ;-)
        regards, tom lane


pgsql-hackers by date:

Previous
From: Matthew Kirkwood
Date:
Subject: Re: SSL Connections
Next
From: Michael Fork
Date:
Subject: Re: AW: Three types of functions, ala function redux.