cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-4377) CQL3 column value validation bug
Date Thu, 09 Aug 2012 17:33:19 GMT

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

Sylvain Lebresne commented on CASSANDRA-4377:
---------------------------------------------

But what the componentIndex give us is which of the composite component is the cql3 column
name. Typically, with collections, it's not even necessarily the last of the component. Now,
if you know the table is a CQL3 one, you could try to infer which component it is by saying
that it's the last component, except if the last is a collection type, in which case that's
the previous one, but that feels a bit messy. And besides, thrift client libraries don't have
a simple automatic way to know if the table is a CQL3 one in the first place. I guess you
could say that if you have a composite comparator *and* some column_metadata then you are
likely a CQL3 table, but again, not very clean imo.


At least internally I would be in favor of keeping the componentIndex as it is cleaner. I
guess we could start returning the ColumnDefinition from CQL3 table without the componentIndex
and let thrift client infer what they can. As said, I still think using CQL3 table from thrift
has other way to be confusing, but why not.
                
> CQL3 column value validation bug
> --------------------------------
>
>                 Key: CASSANDRA-4377
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4377
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.1.1
>            Reporter: Nick Bailey
>            Assignee: Sylvain Lebresne
>             Fix For: 1.1.4
>
>         Attachments: 4377.txt
>
>
> {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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message