cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Fiala (JIRA)" <>
Subject [jira] [Created] (CASSANDRA-14170) Loss of digits when doing CAST from varint/bigint to decimal
Date Wed, 17 Jan 2018 10:23:00 GMT
Daniel Fiala created CASSANDRA-14170:

             Summary: Loss of digits when doing CAST from varint/bigint to decimal
                 Key: CASSANDRA-14170
             Project: Cassandra
          Issue Type: Bug
         Environment: Tested with Cassandra 3.11.1 but this issue is present since the implementation
of cast functions.
            Reporter: Daniel Fiala

Cast functions from numeric types to decimal type are implemented as conversion to double
first and then from double to decimal: [].

This can cause loss of digits for big values stored in varint or bigint. It is probably unexpected
because decimal can store such values precisely.


{{cqlsh> CREATE TABLE cast_bigint_test(k int PRIMARY KEY, bigint_clmn bigint);}}
{{cqlsh> INSERT INTO cast_bigint_test(k, decimal_clmn) VALUES(2, 9223372036854775807);}}
{{cqlsh> SELECT CAST(bigint_clmn AS decimal) FROM cast_bigint_test;}}
{{cast(bigint_clmn as decimal)}}
{{(1 rows)}}

{{cqlsh> CREATE TABLE cast_varint_test (k int PRIMARY KEY, varint_clmn varint);}}
{{cqlsh> INSERT INTO cast_varint_test(k, varint_clmn) values(2, 1234567890123456789);}}
{{cqlsh> SELECT CAST(varint_clmn AS decimal) FROM cast_varint_test;}}
{{cast(varint_clmn as decimal)}}
{{ 1.23456789012345677E+18}}
{{(1 rows)}}


This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message