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

Benjamin Lerer commented on CASSANDRA-9229:
-------------------------------------------

While going back to my patch, I realized that I missunderstood the way the 
{{{TimeType}} was working and that by consequence my patch was wrong.
The {{TimeType}} represents "the number of nanoseconds since midnight". The 
problem being that the notion of midnight is relative to a Timezone.
 
For the {{TimestampType}} or {{DateType}} the value is always stored internally 
in UTC but the way it is output is not clearly defined. By consequence, when 
converting from a {{UUIDTimestampType}} to a {{TimeType}} we have 2 choices:
# use midnight in the server timezone, if we assume that the uuitimestamp was 
generated using {{now()}}
# do not provide that type of function

The same question occurs if we want to convert a {{TimestampType}} into a 
{{TimeType}}.

> Add functions to convert timeuuid to date or time
> -------------------------------------------------
>
>                 Key: CASSANDRA-9229
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9229
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Michaël Figuière
>            Assignee: Benjamin Lerer
>              Labels: cql, doc-impacting
>             Fix For: 3.0
>
>         Attachments: CASSANDRA-9229.txt
>
>
> As CASSANDRA-7523 brings the {{date}} and {{time}} native types to Cassandra, 
> it would be useful to add builtin function to convert {{timeuuid}} to these 
> two new types, just like {{dateOf()}} is doing for timestamps.
> {{timeOf()}} would extract the time component from a {{timeuuid}}. Example 
> use case could be at insert time with for instance {{timeOf(now())}}, as well 
> as at read time to compare the time component of a {{timeuuid}} column in a 
> {{WHERE}} clause.
> The use cases would be similar for {{date}} but the solution is slightly less 
> obvious, as in a perfect world we would want {{dateOf()}} to convert to 
> {{date}} and {{timestampOf()}} for {{timestamp}}, unfortunately {{dateOf()}} 
> already exist and convert to a {{timestamp}}, not a {{date}}. Making this 
> change would break many existing CQL queries which is not acceptable. 
> Therefore we could use a different name formatting logic such as {{toDate}} 
> or {{dateFrom}}. We could then also consider using this new name convention 
> for the 3 dates related types and just have {{dateOf}} becoming a deprecated 
> alias.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to