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

Andres de la Peña commented on CASSANDRA-17628:
-----------------------------------------------

Committed to 3.0 as 
[09692d5a58d96089c699f59e9b7daacd066e902d|https://github.com/apache/cassandra/commit/09692d5a58d96089c699f59e9b7daacd066e902d]
 and merged to 
[3.11|https://github.com/apache/cassandra/commit/bc8a2604718284b95da52205a9b95b8a69483661],
 
[4.0|https://github.com/apache/cassandra/commit/90e2502c6c7826bdb14cebcece81440307a7420e],
 
[4.1|https://github.com/apache/cassandra/commit/33730d9d0603cc110fb8da68d9663b4d52e9b7e6]
 and 
[trunk|https://github.com/apache/cassandra/commit/f8207fe28748a168a76f73db37dec8d42dd67a7a].
 

Thanks for the review.

> CQL writetime and ttl functions should be forbidden for multicell columns
> -------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17628
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17628
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Semantics
>            Reporter: Andres de la Peña
>            Assignee: Andres de la Peña
>            Priority: Normal
>             Fix For: 3.0.x, 3.11.x, 4.0.x, 4.x
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> CQL {{writetime}} and {{ttl}} functions are currently forbidden for 
> collections, frozen or not. Also, they are always allowed for UDTs, frozen or 
> not:
> {code}
> CREATE TYPE udt (a int, b int);
> CREATE TABLE t (k int PRIMARY KEY, s set<int>, fs frozen<set<int>>, t udt, ft 
> frozen<udt>);
> SELECT writetime(s) FROM t; -- fails
> SELECT writetime(st) FROM t; -- fails
> SELECT writetime(t) FROM t; -- allowed
> SELECT writetime(ft) FROM t; -- allowed
> {code}
> This is done by checking in 
> [{{Selectable.WritetimeOrTTL#newSelectorFactory}}|https://github.com/apache/cassandra/blob/cassandra-4.0.4/src/java/org/apache/cassandra/cql3/selection/Selectable.java#L250]
>  whether the column is a collection or not. However, I think that what we 
> should check is whether the column is multi-cell. That way the function would 
> work with frozen collections and UDTs, and it would reject unfrozen 
> collections and UDTs:
> {code}
> SELECT writetime(s) FROM t; -- fails
> SELECT writetime(st) FROM t; -- allowed
> SELECT writetime(t) FROM t; -- fails
> SELECT writetime(ft) FROM t; -- allowed
> {code} 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to