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.