You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brandon Williams (Jira)" <ji...@apache.org> on 2024/04/09 12:04:00 UTC

[jira] [Commented] (CASSANDRA-19546) Add to_human_size function

    [ https://issues.apache.org/jira/browse/CASSANDRA-19546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17835364#comment-17835364 ] 

Brandon Williams commented on CASSANDRA-19546:
----------------------------------------------

Maybe instead of a function this should be a setting of some kind so you don't have to modify the cql?

> Add to_human_size 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
>          Time Spent: 10m
>  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_data(col4)
> ----------------------
>             30.93 MiB
> (1 rows)
> cqlsh> select to_human_size(col4,0) from myks.mytb where id = 1;
>  system.to_data(col4, 0)
> -------------------------
>                   31 MiB
> (1 rows)
> cqlsh> select to_human_size(col4,1) from myks.mytb where id = 1;
>  system.to_data(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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org