[ 
https://issues.apache.org/jira/browse/CASSANDRA-8585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14270016#comment-14270016
 ] 

Philip Thompson commented on CASSANDRA-8585:
--------------------------------------------

[~s_delima], so based on the C# driver output and the system table information, 
this is definitely just the CLI. I don't know of a good workaround, other than 
to suggest cqlsh if your schema allows for it, but this is definitely not going 
to be fixed by us due to how deprecated the CLI is. I'm going to close this as 
"Won't Fix", but if you write up a local fix, we may merge it in.

> Thrift CLI client reporting inconsistent column family structure after 
> upgrade to Cassandra 2.1.2
> -------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-8585
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8585
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API
>            Reporter: Sotirios Delimanolis
>            Assignee: Philip Thompson
>            Priority: Minor
>             Fix For: 2.1.3
>
>         Attachments: schema_columnfamilies.out, schema_columns.out
>
>
> After upgrading from Cassandra 2.0.6.4 to Cassandra 2.1.2-SNAPSHOT, the 
> Thrift CLI client started reporting wrong default_validation_class for a 
> Column Family.
> For example, 
> {noformat}
> [default@MyKeyspace] show schema;
> [...]
> create column family SomeColumnFamily
>   with column_type = 'Standard'
>   and comparator = 'BytesType'
>   and default_validation_class = 'BytesType'
>   and key_validation_class = 'BytesType'
>   and read_repair_chance = 0.1
>   and dclocal_read_repair_chance = 0.0
>   and gc_grace = 10800
>   and min_compaction_threshold = 4
>   and max_compaction_threshold = 32
>   and compaction_strategy = 
> 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'
>   and caching = 'KEYS_ONLY'
>   and cells_per_row_to_cache = '0'
>   and default_time_to_live = 0
>   and speculative_retry = 'NONE'
>   and compaction_strategy_options = {'tombstone_compaction_interval' : '300', 
> 'sstable_size_in_mb' : '200', 'tombstone_threshold' : '0.1'}
>   and compression_options = {'sstable_compression' : 
> 'org.apache.cassandra.io.compress.SnappyCompressor'};
> {noformat}
> but
> {noformat}
> [default@MyKeyspace] describe SomeColumnFamily;
> WARNING: CQL3 tables are intentionally omitted from 'describe' output.
> See https://issues.apache.org/jira/browse/CASSANDRA-4377 for details.
>     ColumnFamily: SomeColumnFamily
>       Key Validation Class: org.apache.cassandra.db.marshal.BytesType
>       Default column value validator: org.apache.cassandra.db.marshal.UTF8Type
>       Cells sorted by: org.apache.cassandra.db.marshal.UTF8Type
>       GC grace seconds: 10800
>       Compaction min/max thresholds: 4/32
>       Read repair chance: 0.1
>       DC Local Read repair chance: 0.0
>       Caching: KEYS_ONLY
>       Default time to live: 0
>       Bloom Filter FP chance: default
>       Index interval: default
>       Speculative Retry: NONE
>       Built indexes: []
>       Compaction Strategy: 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy
>       Compaction Strategy Options:
>         tombstone_compaction_interval: 300
>         sstable_size_in_mb: 200
>         tombstone_threshold: 0.1
>       Compression Options:
>         sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
> {noformat}
> Note how the default column value validator and cell sorting is UTF8Type 
> rather than the BytesType reported earlier.
> If I populate the column family and list its rows, I get
> {noformat}
> [default@MyKeyspace] list SomeColumnFamily;
> Using default limit of 100
> Using default cell limit of 100
> -------------------
> RowKey: SomeRowKey
> String didn't validate.
> {noformat}
> I can't see the row. I can temporarily fix this by setting the 
> default_column_validator
> {noformat}
> [default@MyKeyspace] update column family SomeColumnFamily with 
> default_validation_class = BytesType;
> 0fba13e4-aac6-3963-ad65-ba354d99ebdc
> [default@MyKeyspace] list SomeColumnFamily;
> Using default limit of 100
> Using default cell limit of 100
> -------------------
> RowKey: SomeRowKey
> => (name=some name, value=some value, timestamp=635540144263687300)
> -------------------
> [More RowKeys]
> {noformat}
> If I do a DESCRIBE again, though, LIST stops working again.
> {noformat}
> [default@KeySpace] describe SomeColumnFamily;
> WARNING: CQL3 tables are intentionally omitted from 'describe' output.
> See https://issues.apache.org/jira/browse/CASSANDRA-4377 for details.
>     ColumnFamily: SomeColumnFamily
>       Key Validation Class: org.apache.cassandra.db.marshal.BytesType
>       Default column value validator: org.apache.cassandra.db.marshal.UTF8Type
>       Cells sorted by: org.apache.cassandra.db.marshal.UTF8Type
>       GC grace seconds: 10800
>       Compaction min/max thresholds: 4/32
>       Read repair chance: 0.1
>       DC Local Read repair chance: 0.0
>       Caching: KEYS_ONLY
>       Default time to live: 0
>       Bloom Filter FP chance: default
>       Index interval: default
>       Speculative Retry: NONE
>       Built indexes: []
>       Compaction Strategy: 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy
>       Compaction Strategy Options:
>         tombstone_compaction_interval: 300
>         sstable_size_in_mb: 200
>         tombstone_threshold: 0.1
>       Compression Options:
>         sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
> [default@MyKeyspace] list SomeColumnFamily;
> Using default limit of 100
> Using default cell limit of 100
> -------------------
> RowKey: SomeRowKey
> String didn't validate.
> {noformat}
> I can access the column family rows with other clients, the C# driver for 
> example.
> With C#
> {code:}
> var keyspaceDef = pool.DescribeKeyspace ("MyKeyspace");
> var cfDefs = keyspaceDef.Cf_defs;
> foreach (CfDef cfDef in cfDefs) {
>     if (cfDef.Name == "SomeColumnFamily") {
>         Console.WriteLine ("Default validation class: " + 
> cfDef.Default_validation_class);
>         Console.WriteLine ("Comparator type: " + cfDef.Comparator_type);
>         Console.WriteLine ("Key validation class: " + 
> cfDef.Key_validation_class);
>     }
> }
> {code}
> outputs
> {noformat}
> Default validation class: org.apache.cassandra.db.marshal.BytesType
> Comparator type: org.apache.cassandra.db.marshal.BytesType
> Key validation class: org.apache.cassandra.db.marshal.BytesType
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to