Andy Tolbert created CASSANDRA-11798:
----------------------------------------
Summary: Allow specification of 'time' column value as number in
CQL query.
Key: CASSANDRA-11798
URL: https://issues.apache.org/jira/browse/CASSANDRA-11798
Project: Cassandra
Issue Type: Improvement
Components: CQL
Reporter: Andy Tolbert
Priority: Minor
The 'time' cql type is internally stored and sent over the protocol as an
8-byte long value representing nanoseconds since midnight.
When specifying a time column value as a number in a simple statement,, C*
currently responds with:
{noformat}
InvalidRequest: code=2200 [Invalid query] message="Invalid INTEGER constant
(42000000000) for "time" of type time"
{noformat}
Instead one must provide this value as a string (i.e. {{'42000000000'}} or use
an {{HH.MM.SS.sssssssss}} format, i.e. {{'00:00:42.000000000'}}). It would be
nice if it supported unquoted numbers as well.
Example:
{code}
cqlsh:simple> CREATE TABLE timeentity (id varchar PRIMARY KEY, time time);
# Doesn't work
cqlsh:simple> INSERT into timeentity (id, time) values ('1', 42000000000);
InvalidRequest: code=2200 [Invalid query] message="Invalid INTEGER constant
(42000000000) for "time" of type time"
# Works
cqlsh:simple> INSERT into timeentity (id, time) values ('1', '42000000000');
{code}
When using prepared statements or simple statements with parameters, one could
provide a long value, depending on the driver implementation. I.E. the java
driver has {{setTime(int index, long v)}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)