[ https://issues.apache.org/jira/browse/CASSANDRA-18085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17642474#comment-17642474 ]
Andres de la Peña commented on CASSANDRA-18085: ----------------------------------------------- Here is the PR modifying the collection functions to support not-collection arguments: ||PR||CI|| |[trunk|https://github.com/apache/cassandra/pull/2037]|[j8|https://app.circleci.com/pipelines/github/adelapena/cassandra/2524/workflows/5979d976-7a01-4afa-ae2a-b66f7810334f] [j11|https://app.circleci.com/pipelines/github/adelapena/cassandra/2524/workflows/8989fb9c-f683-4a3c-b906-abe824922b72]| CC [~yifanc] [~frankgh] [~blerer] > Add support for singletons on CQL collection functions > ------------------------------------------------------ > > Key: CASSANDRA-18085 > URL: https://issues.apache.org/jira/browse/CASSANDRA-18085 > Project: Cassandra > Issue Type: Improvement > Components: CQL/Semantics > Reporter: Andres de la Peña > Assignee: Andres de la Peña > Priority: Normal > Fix For: 4.x > > Time Spent: 10m > Remaining Estimate: 0h > > CASSANDRA-18060 has added generic CQL functions to get the min, max, sum, avg > and number of items in a collection. These functions can only be applied to > collection values. The functions throw an {{InvalidRequestEception}} when > applied to not-collection values. > CASSANDRA-18078 has been pointed out that those functions could be applied > also to not-collection values, considering that the not-collection argument > can be considered a collection of a single element. For example: > * collection_min(7) = collection_min([7]) = collection_min(\{7}) = 7 > * collection_max(7) = collection_max([7]) = collection_max(\{7}) = 7 > * collection_sum(7) = collection_sum([7]) = collection_sum(\{7}) = 7 > * collection_avg(7) = collection_avg([7]) = collection_avg(\{7}) = 7 > * collection_count(7) = collection_count([7]) = collection_count(\{7}) = 1 > This would be particularly useful when used in combination with functions > such as {{writetime}} and {{{}ttl{}}}. Those functions can return either > single values or collections of values depending on whether the column passed > as argument is multicell. Thus, users interested on getting the > min/max/sum/avg of the writetimes/ttls of a column need to consider the type > of the column when choosing what functions they should use. With the proposed > change they could just use, for example, > {{collection_max(writetime(column))}} regardless of the column type. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org