cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-4377) CQL3 column value validation bug
Date Thu, 06 Sep 2012 11:17:07 GMT


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:
>             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)'
>   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:

View raw message