[
https://issues.apache.org/jira/browse/CASSANDRA-18085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andres de la Peña updated CASSANDRA-18085:
------------------------------------------
Description:
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.
was:
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.
> 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
>
> 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: [email protected]
For additional commands, e-mail: [email protected]