[ 
https://issues.apache.org/jira/browse/CASSANDRA-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-4377:
----------------------------------------

    Attachment: 4377-2.txt

On Pavel's patch:
* I'm not a fan of logging a warning (or to log anything really) if someone has 
CQL3 CFs. We're trying to push CQL3 as a good thing, let's not log anything 
that could be interpreted as if something was wrong/abnormal.
* The check is excluding composite CF without any ColumnDefinition while it 
shouldn't.

Attaching a v2 that:
* Fix the two remarks above.
* Rename the check as isThriftIncompatible. I think it's more about detecting 
CF definitions that cannot be exploided fully by thrift rather than 
discriminate between what is a thrift CF and CQL3 CF. Especially since the 
intersection between those two notions is not empty.
* Ship the changes to ThriftValidation from my first patch, though modified a 
bit to be more generic and handle correctly collections. I'll note that this 
part makes validation potentially iterate over all ColumnDefinition for 
composite CF, but that's not really an issue since composite CF created on the 
thrift side are almost guaranteed to have no ColumnDefinition.

                
> CQL3 column value validation bug
> --------------------------------
>
>                 Key: CASSANDRA-4377
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4377
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 1.1.1
>            Reporter: Nick Bailey
>            Assignee: Pavel Yaskevich
>              Labels: cql3
>             Fix For: 1.2.0
>
>         Attachments: 4377-2.txt, 4377.txt, CASSANDRA-4377.patch
>
>
> {noformat}
> cqlsh> create keyspace test with strategy_class = 'SimpleStrategy' and 
> strategy_options:replication_factor = 1;
> cqlsh> use test;
> cqlsh:test> CREATE TABLE stats (
>         ...   gid          blob,
>         ...   period     int,
>         ...   tid          blob, 
>         ...   sum        int,
>         ...   uniques           blob,
>         ...   PRIMARY KEY(gid, period, tid)
>         ... );
> cqlsh:test> describe columnfamily stats;
> CREATE TABLE stats (
>   gid blob PRIMARY KEY
> ) WITH
>   comment='' AND
>   
> comparator='CompositeType(org.apache.cassandra.db.marshal.Int32Type,org.apache.cassandra.db.marshal.BytesType,org.apache.cassandra.db.marshal.UTF8Type)'
>  AND
>   read_repair_chance=0.100000 AND
>   gc_grace_seconds=864000 AND
>   default_validation=text AND
>   min_compaction_threshold=4 AND
>   max_compaction_threshold=32 AND
>   replicate_on_write='true' AND
>   compaction_strategy_class='SizeTieredCompactionStrategy' AND
>   compression_parameters:sstable_compression='SnappyCompressor';
> {noformat}
> You can see in the above output that the stats cf is created with the column 
> validator set to text, but neither of the non primary key columns defined are 
> text. It should either be setting metadata for those columns or not setting a 
> default validator or some combination of the two.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to