[
https://issues.apache.org/jira/browse/CASSANDRA-19546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17842742#comment-17842742
]
Brad Schoening edited comment on CASSANDRA-19546 at 5/1/24 6:42 PM:
--------------------------------------------------------------------
The MySQL documentation has:
{quote}The string contains the number of bytes rounded to 2 decimal places and
a minimum of 3 significant digits. Numbers less than 1024 bytes are represented
as whole numbers and are not rounded.
{quote}
I saw that NPM has a popular 3rd party pretty-bytes package which has
{quote}number of fraction digits to display.
If neither {{minimumFractionDigits}} or {{maximumFractionDigits}} are set, the
default behavior is to round to 3 significant digits.
{quote}
Three significant digits sounds about right (which MySQL has as the minimum and
pretty-bites has as the default). Considering a few examples:
* 101 KB - I wouldn't care to see 101.34 KB
* 10.1 MB - I'd prefer over 10 MB and +/- 5%
was (Author: bschoeni):
The MySQL documentation has:
{quote}The string contains the number of bytes rounded to 2 decimal places and
a minimum of 3 significant digits. Numbers less than 1024 bytes are represented
as whole numbers and are not rounded.
{quote}
I saw that NPM has a popular 3rd party pretty-bites package which has
{quote}number of fraction digits to display.
If neither {{minimumFractionDigits}} or {{maximumFractionDigits}} are set, the
default behavior is to round to 3 significant digits.
{quote}
Three significant digits sounds about right (which MySQL has as the minimum and
pretty-bites has as the default). Considering a few examples:
* 101 KB - I wouldn't care to see 101.34 KB
* 10.1 MB - I'd prefer over 10 MB and +/- 5%
> Add to_human_size and to_human_duration function
> ------------------------------------------------
>
> Key: CASSANDRA-19546
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19546
> Project: Cassandra
> Issue Type: New Feature
> Components: Legacy/CQL
> Reporter: Stefan Miklosovic
> Assignee: Stefan Miklosovic
> Priority: Normal
> Fix For: 5.x
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> There are cases (e.g in our system_views tables but might be applicable for
> user tables as well) when a column is of a type which represents number of
> bytes. However, it is quite hard to parse a value for a human to have some
> estimation what that value is.
> I propose this:
> {code:java}
> cqlsh> select * from myks.mytb ;
> id | col1 | col2 | col3 | col4
> ----+------+------+------+----------
> 1 | 100 | 200 | 300 | 32432423
> (1 rows)
> cqlsh> select to_human_size(col4) from myks.mytb where id = 1;
> system.to_human_size(col4)
> ----------------------
> 30.93 MiB
> (1 rows)
> cqlsh> select to_human_size(col4,0) from myks.mytb where id = 1;
> system.to_human_size(col4, 0)
> -------------------------
> 31 MiB
> (1 rows)
> cqlsh> select to_human_size(col4,1) from myks.mytb where id = 1;
> system.to_human_size(col4, 1)
> -------------------------
> 30.9 MiB
> (1 rows)
> {code}
> The second argument is optional and represents the number of decimal places
> (at most) to use. Without the second argument, it will default to
> FileUtils.df which is "#.##" format.
> {code}
> cqlsh> DESCRIBE myks.mytb ;
> CREATE TABLE myks.mytb (
> id int PRIMARY KEY,
> col1 int,
> col2 smallint,
> col3 bigint,
> col4 varint,
> )
> {code}
> I also propose that this to_human_size function (name of it might be indeed
> discussed and it is just a suggestion) should be only applicable for int,
> smallint, bigint and varint types. I am not sure how to apply this to e.g.
> "float" or similar. As I mentioned, it is meant to convert just number of
> bytes, which is just some number, to a string representation of that and I do
> not think that applying that function to anything else but these types makes
> sense.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]