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

Sylvain Lebresne commented on CASSANDRA-4421:
---------------------------------------------

bq. Add collections support to Thrift via String serialization

I'm not really sure what you have in mind but I'm not sure I'm a fan of that 
idea. Supporting collections on write is one thing, supporting in on reads is 
another. Do we really want to add a new pass over the resulting columns in 
thrift to group those belonging to the same collection? That sound very messy.

bq. Add a CqlInputFormat

While this might be painful, I have a strong feeling that long term this is 
probably the right solution (one reason being if we ever want to support 
CASSANDRA-2478 for the input format). On the painful part of this:
* on the short term, can't we use the CQL processor client side to convert the 
select statement to a thrift query (since we know how to do this for thrift 
queries)?
* on the slightly longer term, we will need general paging for CQL queries for 
CASSANDRA-4415. Once that's in, that should lift the main difficulty, shouldn't 
it?

But for this specific issue, I suppose the patch I've attached to 
CASSANDRA-4377 should solve Bert's problem.
                
> Support cql3 table definitions in Hadoop InputFormat
> ----------------------------------------------------
>
>                 Key: CASSANDRA-4421
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4421
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 1.1.0
>         Environment: Debian Squeeze
>            Reporter: bert Passek
>            Assignee: Sylvain Lebresne
>              Labels: cql3
>             Fix For: 1.1.3
>
>
> Hello,
> i faced a bug while writing composite column values and following validation 
> on server side.
> This is the setup for reproduction:
> 1. create a keyspace
> create keyspace test with strategy_class = 'SimpleStrategy' and 
> strategy_options:replication_factor = 1;
> 2. create a cf via cql (3.0)
> create table test1 (
>     a int,
>     b int,
>     c int,
>     primary key (a, b)
> );
> If i have a look at the schema in cli i noticed that there is no column 
> metadata for columns not part of primary key.
> create column family test1
>   with column_type = 'Standard'
>   and comparator = 
> 'CompositeType(org.apache.cassandra.db.marshal.Int32Type,org.apache.cassandra.db.marshal.UTF8Type)'
>   and default_validation_class = 'UTF8Type'
>   and key_validation_class = 'Int32Type'
>   and read_repair_chance = 0.1
>   and dclocal_read_repair_chance = 0.0
>   and gc_grace = 864000
>   and min_compaction_threshold = 4
>   and max_compaction_threshold = 32
>   and replicate_on_write = true
>   and compaction_strategy = 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
>   and caching = 'KEYS_ONLY'
>   and compression_options = {'sstable_compression' : 
> 'org.apache.cassandra.io.compress.SnappyCompressor'};
> Please notice the default validation class: UTF8Type
> Now i would like to insert value > 127 via cassandra client (no cql, part of 
> mr-jobs). Have a look at the attachement.
> Batch mutate fails:
> InvalidRequestException(why:(String didn't validate.) [test][test1][1:c] 
> failed validation)
> A validator for column value is fetched in 
> ThriftValidation::validateColumnData which returns always the default 
> validator which is UTF8Type as described above (The ColumnDefinition for 
> given column name "c" is always null)
> In UTF8Type there is a check for
> if (b > 127)
>    return false;
> Anyway, maybe i'm doing something wrong, but i used cql 3.0 for table 
> creation. I assigned data types to all columns, but i can not set values for 
> a composite column because the default validation class is used.
> I think the schema should know the correct validator even for composite 
> columns. The usage of the default validation class does not make sense.
> Best Regards 
> Bert Passek

--
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

        

Reply via email to