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

Sylvain Lebresne resolved CASSANDRA-8567.
-----------------------------------------
    Resolution: Won't Fix

We might add some {{length}} and {{trim}} method at some point, though even if 
we don't, UDF in 3.0 will allow you to define them. But what you're really 
asking here is to be able to use functions in {{ORDER BY}}, and that is not 
going to happen. The reason is that we have no better strategy server side than 
to read everything and sort it in memory afterwards before returning to the 
client. Which 1) is no faster than letting you the client do the sorting client 
side and 2) doesn't work with paging at all and thus makes it likely to OOM as 
soon as the amount of data to order is not small.

For those reason, we prefer letting clients do the sorting themselves 
post-query if they wants to (but we understand that for cqlsh it's not as nice 
as you'd like. Though if you really need quick and dirty post-query sorting, 
piping the output of cqlsh into sort (the unix utility) isn't terribly hard). 
Alternatively, if you need results in that sort order often, you should store 
the data in a table whose clustering is {{length(trim(field)}}.

> Functions like length() and trim() on cqlsh table fields
> --------------------------------------------------------
>
>                 Key: CASSANDRA-8567
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8567
>             Project: Cassandra
>          Issue Type: Wish
>          Components: Core
>            Reporter: Rekha Joshi
>
> It would be nice to be able to order by length of field values.
> A function like length(field) and trim(field) on cqlsh
> To enable do something like say - select * from  <table> where 
> <field1>=<value> order by length(trim(<field2>)) desc;
> Thanks.



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

Reply via email to