Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-4920

Add collation semantics to abstract type to provide standard sort order for Strings

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Low
    • Resolution: Duplicate
    • Fix Version/s: None
    • Component/s: Legacy/CQL
    • Labels:

      Description

      Adding a way to sort UTF8 based on below described collation semantics can be useful.

      Use case: Say for example you have wide rows where you cannot use cassandra's standard indexes(secondary/primary index). Lets say each column had a string value that was either one of alphanumeric or purely numeric and you wanted an index by value. MOre specifically you want to slice range over a bunch of column values and say "get me all the ID's associated with value ABC to XYZ ". As usual I would index these values in a materialized views

      More specifically I create an index CF; And add these values into a CompositeType column and SliceRange over them for the indexing to work and I dont really care weather its a alpha or a numeric as long as its ordered by the following collation semantics as follows:
      1) If the string is a numeric then it should be comparable like a numeric
      2) If its a alpha then it should be comparable like a normal string.
      3) If its a alhpa-numeric then a contiguos sequence of numbers in the string should be compared as numbers like "c10" > "c2".
      4) UTF8 type strings assumed everywhere.

      How this helps?:
      1) You dont end up creating multiple CF for different value types.
      2) You dont have to write boiler plate to do complicated type detection and do this manually in the application.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              itissid Sidharth
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: