Creating an index, validator, and default validator then renaming/dropping the index later results in read errors.
Is there an easy way around this problem without having to keep an invalid definition for a column that will get deleted or expired? 1) create a secondary index on a column with a validator and a default validator 2) insert a row 3) read and verify the row 4) update the CF/index/name/validator 5) read the CF and get an error (CLI or Pycassa) CLI Commands to create the row and CF/Index create column family cf_testing with comparator=UTF8Type and default_validation_class=UTF8Type and column_metadata=[{column_name: colour, validation_class: LongType, index_type: KEYS}]; set cf_testing['key']['colour']='1234'; list cf_testing; update column family cf_testing with comparator=UTF8Type and default_validation_class=UTF8Type and column_metadata=[{column_name: color, validation_class: LongType, index_type: KEYS}]; ERROR from the CLI: list cf_testing; Using default limit of 100 ------------------- RowKey: key invalid UTF8 bytes 00000000000004d2 Here is the Pycassa client code that shows this error too. badindex.py #!/usr/local/bin/python2.7 import pycassa import uuid import sys def main(): try: keyspace="badindex" serverPoolList = ['localhost:9160'] pool = pycassa.connect(keyspace, serverPoolList) except: print "couldn't get a connection" sys.exit() cfname="cf_testing" cf = pycassa.ColumnFamily(pool, cfname) results = cf.get_range(start='key', finish='key', row_count=1) for key, columns in results: print key, '=>', columns if __name__ == "__main__": main()