You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "C. Scott Andreas (JIRA)" <ji...@apache.org> on 2018/11/19 02:27:01 UTC

[jira] [Updated] (CASSANDRA-11938) Clarify difference between cast and cast in CQL

     [ https://issues.apache.org/jira/browse/CASSANDRA-11938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

C. Scott Andreas updated CASSANDRA-11938:
-----------------------------------------
    Component/s: Documentation and Website
                 CQL

> Clarify difference between cast and cast in CQL
> -----------------------------------------------
>
>                 Key: CASSANDRA-11938
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11938
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL, Documentation and Website
>            Reporter: Sylvain Lebresne
>            Priority: Major
>
> We have, in CQL, 2 notons of casts:
> * {{(int)?}}
> * (CAST c as int)
> which is pretty confusing, especially in the code where both are called "cast".
> Turns out both have somewhat different behavior (whether that justifies having the 2 is debatable, but it's the way it is now):
> * {{(int)?}} is really just a type hint for the type system. It will never "convert" value. In particular, doing {{(int)x}} where {{x}} is explicitly a {{bigint}} is invalid because {{bigint}} is 8 bytes while {{int}} is only 4 bytes. Meaning that this type of "cast" is useful when the type system needs help,for instance when you have a bind marker and the type system can't infer it's type from context.
> * {{(CAST c as int)}} is actually about conversions and you can do it even if {{c}} is a {{bigint}}.
> Now, even if both notions are useful, we can't call both "casts" or that's really confusing. As we can't really rename the 2nd form since it explicitly use {{CAST}} in the syntax, I suggest calling the first form a "type hint" (which is kind of what it is).
> That ticket is about reflecting that naming change in the code as well as where appropriate in the doc (we can use the occasion to improve the doc on the difference while at it).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org