> java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: > cannot parse 'subject' as hex bytes This has to do with the create column family statement...
> and comparator = 'BytesType' Tells Cassandra that all column names in this CF should be interpreted as raw bytes. The BytesType expects string input to be Hexadecimal formatted strings. > and column_metadata=[{column_name: subject, validation_class: BytesType, > index_type: KEYS}]; Tells Cassandra to create a secondary index on the column named 'subject'. Column names will in interpreted as hex however, and 'subject' is not a valid hex string. Assuming the column names are not thing things you are validating in PHP. Consider changing the comparator to UTF8Type… create column family subjects with column_type = 'Standard' and comparator = 'UTF8Type' and default_validation_class = 'BytesType' and key_validation_class = 'BytesType' and rows_cached = 200000.0 and row_cache_save_period = 0 and row_cache_keys_to_save = 2147483647 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 = 'SerializingCacheProvider' and compaction_strategy = 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy' and column_metadata=[{column_name: subject, validation_class: BytesType, index_type: KEYS}]; hope that helps. ----------------- Aaron Morton Freelance Developer @aaronmorton http://www.thelastpickle.com ----------------- Aaron Morton Freelance Developer @aaronmorton http://www.thelastpickle.com On 19/03/2012, at 2:22 AM, Sam Hodgson wrote: > Hi me again - sorry i've just read that bytestype will expect hex input so my > question now is how to create a column that will accept non-validated text as > as input? I think I can maybe get round this by forcing UTF8Encoding > regardless if the string is already identified as UTF8 or not however it > seems like im missing some fundamental knowledge about casandra validation? > > Cheers > > Sam > > From: hodgson_...@hotmail.com > To: user@cassandra.apache.org > Subject: Secondary Index Validation Type Parse Error > Date: Sun, 18 Mar 2012 13:02:10 +0000 > > Hi All, > > Getting the following parse error when trying to create a CF with a secondary > index using the bytestype attribute, the index is for a column called > 'subject': > > java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: > cannot parse 'subject' as hex bytes > > Im doing all my validation in php however im unable to validate some UTF8 > sources accurately (using mb_detect_encoding) - Cass picks up on bits of > non-UTF8 compatible text that the php doesnt so its throwing exceptions. > Figured id set everything to bytestype to try and effectively turn off > validation in Cass? > > Im using the following to try and build the CF: > > create column family subjects > with column_type = 'Standard' > and comparator = 'BytesType' > and default_validation_class = 'BytesType' > and key_validation_class = 'BytesType' > and rows_cached = 200000.0 > and row_cache_save_period = 0 > and row_cache_keys_to_save = 2147483647 > 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 = 'SerializingCacheProvider' > and compaction_strategy = > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy' > and column_metadata=[{column_name: subject, validation_class: BytesType, > index_type: KEYS}]; > > Any help is greatly appreciated! :) > > Cheers > > Sam