From: | David Christensen <david(dot)christensen(at)crunchydata(dot)com> |
---|---|
To: | Isaac Morland <isaac(dot)morland(at)gmail(dot)com> |
Cc: | Shinya11(dot)Kato(at)nttdata(dot)com, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] expand the units that pg_size_pretty supports on output |
Date: | 2021-06-15 14:51:59 |
Message-ID: | CAOxo6X+kNPEOdEGXs+NiZ_FSLExHgyM2v+gt4yO9=YDX5KgDmQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jun 15, 2021 at 8:31 AM Isaac Morland <isaac(dot)morland(at)gmail(dot)com>
wrote:
> On Tue, 15 Jun 2021 at 05:24, <Shinya11(dot)Kato(at)nttdata(dot)com> wrote:
>
>> >> I don't see the need to extend the unit to YB.
>> >> What use case do you have in mind?
>> >
>> >Practical or no, I saw no reason not to support all defined units. I
>> assume we’ll
>> >get to a need sooner or later. :)
>>
>> Thank you for your reply!
>> Hmmm, I didn't think YB was necessary, but what do others think?
>>
>
> If I’m reading the code correctly, the difference between supporting YB
> and not supporting it is whether there is a line for it in the list of
> prefixes and their multiples. As such, I don’t see why we’re even
> discussing whether or not to include all the standard prefixes. A YB is
> still an absurd amount of storage, but that’s not the point; just put all
> the standard prefixes and be done with it. If actual code changes were
> required in the new code as they are in the old it might be worth
> discussing.
>
Agreed, this is why I went this way. One and done.
> One question: why is there no “k” in the list of prefixes?
>
kB has a special-case code block before you get to this point. I didn't
look into the reasons, but assume there are some.
> Also: why not have only the prefixes in the array, and use a single fixed
> output format "%s %sB" all the time?
>
> It feels like it should be possible to calculate the appropriate idx to
> use (while adjusting the number to print as is done now) and then just have
> one psprintf call for all cases.
>
Sure, if that seems more readable/understandable.
> A more significant question is YB vs. YiB. I know there is a long
> tradition within computer-related fields of saying that k = 1024, M =
> 1024^2, etc., but we’re not special enough to override the more general
> principles of SI (Système International) which provide that k = 1000, M =
> 1000^2 and so on universally and provide the alternate prefixes ki, Mi,
> etc. which use 1024 as the multiple.
>
> So I would suggest either display 2000000 as 2MB or as 1.907MiB.
>
Heh, I was just expanding the existing logic; if others want to have this
particular battle go ahead and I'll adjust the code/prefixes, but obviously
the logic will need to change if we want to support true MB instead of MiB
as MB.
Also, this will presumably be a breaking change for anyone using the
existing units MB == 1024 * 1024, as we've had for something like 20
years. Changing these units to the *iB will be trivial with this patch,
but not looking forward to garnering the consensus to change this part.
David
From | Date | Subject | |
---|---|---|---|
Next Message | David Christensen | 2021-06-15 14:58:06 | Re: [PATCH] expand the units that pg_size_pretty supports on output |
Previous Message | Amit Kapila | 2021-06-15 14:41:19 | Re: [bug?] Missed parallel safety checks, and wrong parallel safety |