Re: [BUGS] BUG #14244: wrong suffix for pg_size_pretty() - Mailing list pgsql-hackers

From David G. Johnston
Subject Re: [BUGS] BUG #14244: wrong suffix for pg_size_pretty()
Date
Msg-id CAKFQuwabqqy-R76GnaCL+KWOmipC0mio=mFoZqoXqDQSw+YwTg@mail.gmail.com
Whole thread Raw
In response to Re: [BUGS] BUG #14244: wrong suffix for pg_size_pretty()  (Bruce Momjian <bruce@momjian.us>)
Responses Re: [BUGS] BUG #14244: wrong suffix for pg_size_pretty()
Re: [BUGS] BUG #14244: wrong suffix for pg_size_pretty()
List pgsql-hackers
On Fri, Jul 29, 2016 at 8:18 PM, Bruce Momjian <bruce@momjian.us> wrote:
On Tue, Jul 12, 2016 at 01:36:38PM +0000, thomas.berger@1und1.de wrote:
> The following bug has been logged on the website:
>
> Bug reference:      14244
> Logged by:          Thomas Berger
> Email address:      thomas.berger@1und1.de
> PostgreSQL version: 9.5.3
> Operating system:   any
> Description:
>
> pg_size_pretty uses the suffix "kB" (kilobyte, 10^3 byte), but the returned
> value is "KB", or "KiB" ( kibibyte, 2^10 byte). This is missleading and
> should be fixed. See also https://en.wikipedia.org/wiki/Kibibyte
>
> =# select pg_size_pretty(1024000::bigint);
>  pg_size_pretty
> ----------------
>  1000 kB

(Thread moved to hackers.)

Yes, we have redefined kB, and documented its use in postgresql.conf and
pg_size_pretty(), but it does not match any recognized standard.

​After bouncing on this for a bit I'm inclined to mark the bug itself "won't fix" but introduce a "to_binary_iso" function (I'm hopeful a better name will emerge...) that will output a number using ISO binary suffixes.  I would document this under 9.8 "data type formatting functions" instead of within system functions.

pg_size_pretty output can continue with a defined role to be used as input into a GUC variable; and to keep backward compatibility.  Add a note near its definition to use "to_binary_iso" for a standard-conforming output string.

​David J.

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [BUGS] BUG #14244: wrong suffix for pg_size_pretty()
Next
From: Pavel Stehule
Date:
Subject: Re: [Patch] Temporary tables that do not bloat pg_catalog (a.k.a fast temp tables)