I was trying to get a range of rows based on a secondary_index that was
defined.  Any rows where age was greater than or equal to ... it didn't
work.  Is this a continued limitation?  Did a quick look in JIRA, couldn't
find anything.

The output from "help get;" on the cli contains the following, which led me
to believe it was a limitation on Cassandra 0.7.x and not on 0.8.x ...

get <cf> where <col> <operator> <value> [
    and <col> <operator> <value> and ...] [limit <limit>];
get <cf> where <col> <operator> <function>(<value>) [
    and <col> <operator> <function> and ...] [limit <limit>];

- operator: Operator to test the column value with. Supported operators are
  =, >, >=, <, <= .

  In Cassandra 0.7 at least one = operator must be present.

[default@sdo]  get user where age >= 18;
No indexed columns present in index clause with operator EQ
[default@sdo]  get user where gender = 1 and age >= 18
(returns results)

Tested this behavior on 0.8.2, 0.8.6 and now 0.8.7 ...

create column family user
  with column_type = 'Standard'
  and comparator = 'UTF8Type'
  and default_validation_class = 'BytesType'
  and key_validation_class = 'BytesType'
  and memtable_operations = 0.24843749999999998
  and memtable_throughput = 53
  and memtable_flush_after = 1440
  and rows_cached = 0.0
  and row_cache_save_period = 0
  and keys_cached = 200000.0
  and key_cache_save_period = 14400
  and read_repair_chance = 1.0
  and gc_grace = 864000
  and min_compaction_threshold = 4
  and max_compaction_threshold = 32
  and replicate_on_write = true
  and row_cache_provider = 'ConcurrentLinkedHashCacheProvider'
  and column_metadata = [
    {column_name : 'gender',
    validation_class : LongType,
    index_name : 'user_gender_idx',
    index_type : 0},
    {column_name : 'year',
    validation_class : LongType,
    index_name : 'user_year_idx',
    index_type : 0}];



-- 
Sasha Dolgy
sasha.do...@gmail.com

Reply via email to