[ https://issues.apache.org/jira/browse/CASSANDRA-4004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13257568#comment-13257568 ]
Sylvain Lebresne commented on CASSANDRA-4004: --------------------------------------------- bq. This is what I'm referring to: Wait, what happened to "Third (and this is the big one) I strongly suspect that we're going to start supporting at least limited run-time ordering in the near future" from CASSANDRA-3925. How can I reconcile that with "The other relevant context here is that we decided not to support arbitrary orderings"? bq. "ORDER BY X DESC" does not mean "give me them in the reverse order that Xes are in on disk" I *never* suggested that, not even a little. Not more than you did. bq. it means "give me larger values before smaller ones." This isn't open for debate, it's a very clear requirement Sure. But the definition of larger versus smaller depends on what ordering you are talking about. This isn't open for debate either. Math have closed that debate for ages. And SQL is not excluded from that rule, but it just happens that SQL has default orderings (based on the column type) and you can't define new ones. But we can do that in CQL. We can independently of this ticket because of custom types. Again, once you consider custom types (which we have), you can't hide behind that the fact that value X is larger than Y depends on the ordering induces by your custom types. That's the ASC order, and DESC is the reverse of that. If someone define it's own custom types being "reverseIntegerType", how can you avoid SELECT ORDER BY DESC to not return 1 before 3? You can't, and returning 1 before 3 absolutely make sense because 1 is larger than 3 if the order is 'reverseInteger'. bq. SQL and CQL are declarative languages: "Here is what I want; you figure out how to give me the results." This has proved a good design. Sure, *nothing* in what I'm suggesting is at odd with that. bq. Modifying the semantics of a query based on index or clustering Again, I'm not suggesting any such thing at all. The semantic of a SELECT X ORDER BY Y depends on what ordering relation is defined for Y *because the ordering relation is what defines the order*. SQL has a limited and non customizable set of types *and* (implicitly) define an ordering relation for each one. If one type was 'thing' it would have to define the ordering of 'thing' otherwise ORDER BY queries wouldn't be properly defined. CQL also has a default set of types which have associated ordering relation. I'm *only* suggesting we add a simple syntax so that given a type/relation (a default one or a custom one btw), we can define the type/ordering relation that validate the same value but have the reversed ordering. > Add support for ReversedType > ---------------------------- > > Key: CASSANDRA-4004 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4004 > Project: Cassandra > Issue Type: Sub-task > Components: API > Reporter: Sylvain Lebresne > Assignee: Sylvain Lebresne > Priority: Trivial > Fix For: 1.1.1 > > Attachments: 4004.txt > > > It would be nice to add a native syntax for the use of ReversedType. I'm sure > there is anything in SQL that we inspired ourselves from, so I would propose > something like: > {noformat} > CREATE TABLE timeseries ( > key text, > time uuid, > value text, > PRIMARY KEY (key, time DESC) > ) > {noformat} > Alternatively, the DESC could also be put after the column name definition > but one argument for putting it in the PK instead is that this only apply to > keys. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira