cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-2231) Add CompositeType comparer to the comparers provided in org.apache.cassandra.db.marshal
Date Fri, 18 Mar 2011 14:55:29 GMT

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

Sylvain Lebresne commented on CASSANDRA-2231:
---------------------------------------------

That would be better solved by having reversed comparator for all comparators, and I would
much prefer a general way to define a reversed comparator.  That is, for instance, you could
declare comparator=LongType(order=desc).  Having a way That would be better solved by having
reversed comparator for all comparators, and I would much prefer having a general way to define
a reversed comparator. That is, for instance, you could declare {{comparator=LongType(order=desc)}}.

That way you don't have to mess with the composite types encoded format (and I'm really keen
on keeping it as simple as possible). Plus have a reversed comparator for all comparator is
generally useful even outside composite types (granted it's a bit less useful for simple types
since you can always query in reverse, but reverse queries are probably a bit slower due to
reverse seeks).

Even more generally, I think being able to parametrize the behavior of comparators is genuinely
useful. For instance, I could see having only one comparator for UUIDs (in the spirit of CASSANDRA-2233)
and being able to say stuffs like 
{noformat}
  comparator=UUIDType                     // accepts both time based and lexical
  comparator=UUIDType(restrictTo=time)    // time based only
  comparator=UUIDType(restrictTo=lexical) // lexical only
{noformat}
or something along those lines.

I've opened CASSANDRA-2355 for doing the reverse part of this.

> Add CompositeType comparer to the comparers provided in org.apache.cassandra.db.marshal
> ---------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-2231
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2231
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Contrib
>    Affects Versions: 0.7.3
>            Reporter: Ed Anuff
>            Priority: Minor
>         Attachments: 0001-Add-compositeType-and-DynamicCompositeType.patch, 0001-Add-compositeType.patch,
edanuff-CassandraCompositeType-1e253c4.zip
>
>
> CompositeType is a custom comparer that makes it possible to create comparable composite
values out of the basic types that Cassandra currently supports, such as Long, UUID, etc.
 This is very useful in both the creation of custom inverted indexes using columns in a skinny
row, where each column name is a composite value, and also when using Cassandra's built-in
secondary index support, where it can be used to encode the values in the columns that Cassandra
indexes.  One scenario for the usage of these is documented here: http://www.anuff.com/2010/07/secondary-indexes-in-cassandra.html.
 Source for contribution is attached and has been previously maintained on github here: https://github.com/edanuff/CassandraCompositeType

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message