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)

Reply via email to