[
https://issues.apache.org/jira/browse/CASSANDRA-10625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15025299#comment-15025299
]
Adam Holmberg commented on CASSANDRA-10625:
-------------------------------------------
Changing the return type for the driver is not tenable. What to do with
out-of-range values seems application-specific to me, so it didn't seem
appropriate to put the optional workaround in the driver. With that in mind, a
proposed change to patch in the desired fallback
[here|https://github.com/apache/cassandra/compare/cassandra-3.0...aholmberg:10625-3.0]
Example output with patch:
{code}
cassandra@cqlsh:test> create table ts (k int PRIMARY KEY , t timestamp );
cassandra@cqlsh:test> insert into ts (k, t) VALUES (0, 0);
cassandra@cqlsh:test> insert into ts (k, t) VALUES (1, '10000-01-01
00:00:01+0000');
cassandra@cqlsh:test> select * from ts;
k | t
---+--------------------------
1 | 253402300801000
0 | 1970-01-01 00:00:00+0000
{code}
> Problem of year 10000: Dates too far in the future can be saved but not read
> back using cqlsh
> ---------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-10625
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10625
> Project: Cassandra
> Issue Type: Bug
> Reporter: Piotr Kołaczkowski
> Priority: Minor
> Fix For: 3.0.1, 3.1
>
>
> {noformat}
> cqlsh> insert into test.timestamp_test (pkey, ts) VALUES (1, '9999-12-31
> 23:59:59+0000');
> cqlsh> select * from test.timestamp_test ;
> pkey | ts
> ------+--------------------------
> 1 | 9999-12-31 23:59:59+0000
> (1 rows)
> cqlsh> insert into test.timestamp_test (pkey, ts) VALUES (1, '10000-01-01
> 00:00:01+0000');
> cqlsh> select * from test.timestamp_test ;
> Traceback (most recent call last):
> File "bin/../resources/cassandra/bin/cqlsh", line 1112, in
> perform_simple_statement
> rows = self.session.execute(statement, trace=self.tracing_enabled)
> File
> "/home/pkolaczk/Projekty/DataStax/bdp/resources/cassandra/bin/../zipfiles/cassandra-driver-internal-only-2.7.2.zip/cassandra-driver-2.7.2/cassandra/cluster.py",
> line 1602, in execute
> result = future.result()
> File
> "/home/pkolaczk/Projekty/DataStax/bdp/resources/cassandra/bin/../zipfiles/cassandra-driver-internal-only-2.7.2.zip/cassandra-driver-2.7.2/cassandra/cluster.py",
> line 3347, in result
> raise self._final_exception
> OverflowError: date value out of range
> {noformat}
> The connection is broken afterwards:
> {noformat}
> cqlsh> insert into test.timestamp_test (pkey, ts) VALUES (1, '10000-01-01
> 00:00:01+0000');
> NoHostAvailable: ('Unable to complete the operation against any hosts',
> {<Host: 127.0.0.1 Analytics>: ConnectionShutdown('Connection to 127.0.0.1 is
> defunct',)})
> {noformat}
> Expected behaviors (one of):
> - don't allow to insert dates larger than 9999-12-31 and document the
> limitation
> - handle all dates up to Java Date(MAX_LONG) for writing and reading
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)