[
https://issues.apache.org/jira/browse/CASSANDRA-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436817#comment-13436817
]
Jonathan Ellis commented on CASSANDRA-4377:
-------------------------------------------
Here's what I think our goals are, in order of importance:
# Existing "high level" clients should have a reasonable upgrade path to read
and update collections and cql3 CFs.
# CLI and other tools that don't speak cql should have a way to tell that they
can't cope with CQL3 CF definitions. This is the problem Nick described
originally in this ticket description. Actually making such tools able to
manipulate CQL3 definitions is NOT a goal, but we should, as Nick says, make
that more obvious.
# We should allow updates to CQL3 CFs from Thrift, if someone manually composes
the correct CompositeType bytes. This is what most of the rest of the
discussion here involves.
Analysis:
# This we have done--they will have to use cql-over-thrift, but IMO this is
reasonable. Thrift RPC methods to deal with collections have never been on the
roadmap.
# This is tough since if this involves new information (like exposing
component_index, or even adding a cql3 boolean to CfDef) then old tools by
definition won't know about it. *Proposal:* what if we omit CQL3 CfDefs from
those we return to describe_keyspace[s] calls? Not quite as good as returning
a CfDef that explicitly says "I am here but you can't touch this," but compare
to displaying incomplete information (that the cli doesn't know is incomplete)
it's much more obvious that the cli and other old thrift-base schema
manipulators can't cope with such.
# Sylvain mentioned adding a thrift or JMX method to enable validation-free
updates but I'd rather make ThriftValidation cql3-aware, which would let this
work without any special flags. I don't see any downside to this except added
complexity for ThriftValidation.
> 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.5
>
> 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