Russell Bradberry created CASSANDRA-6831:
--------------------------------------------

             Summary: Updates to COMPACT STORAGE tables via cli drop CQL 
information
                 Key: CASSANDRA-6831
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6831
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Russell Bradberry
            Priority: Minor


If a COMPACT STORAGE table is altered using the CLI all information about the 
column names reverts to the initial "key, column1, column2" namings.  
Additionally, the changes in the columns name will not take effect until the 
Cassandra service is restarted.  This means that the clients using CQL will 
continue to work properly until the service is restarted, at which time they 
will start getting errors about non-existant columns in the table.

When attempting to rename the columns back using ALTER TABLE an error stating 
the column already exists will be raised.  The only way to get it back is to 
ALTER TABLE and change the comment or something, which will bring back all the 
original column names.

This seems to be related to CASSANDRA-6676 and CASSANDRA-6370

In cqlsh
{code}
Connected to cluster1 at 127.0.0.3:9160.
[cqlsh 3.1.8 | Cassandra 1.2.15-SNAPSHOT | CQL spec 3.0.0 | Thrift protocol 
19.36.2]
Use HELP for help.
cqlsh> CREATE KEYSPACE test WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 3 };
cqlsh> USE test;
cqlsh:test> CREATE TABLE foo (bar text, baz text, qux text, PRIMARY KEY(bar, 
baz) ) WITH COMPACT STORAGE;
cqlsh:test> describe table foo;

CREATE TABLE foo (
  bar text,
  baz text,
  qux text,
  PRIMARY KEY (bar, baz)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'SnappyCompressor'};
{code}

Now in cli:
{code}

  Connected to: "cluster1" on 127.0.0.3/9160
Welcome to Cassandra CLI version 1.2.15-SNAPSHOT

Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.

[default@unknown] use test;
Authenticated to keyspace: test
[default@test] UPDATE COLUMN FAMILY foo WITH comment='hey this is a comment';
3bf5fa49-5d03-34f0-b46c-6745f7740925
{code}

Now back in cqlsh:
{code}
cqlsh:test> describe table foo;

CREATE TABLE foo (
  bar text,
  column1 text,
  value text,
  PRIMARY KEY (bar, column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='hey this is a comment' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'SnappyCompressor'};

cqlsh:test> ALTER TABLE foo WITH comment='this is a new comment';
cqlsh:test> describe table foo;

CREATE TABLE foo (
  bar text,
  baz text,
  qux text,
  PRIMARY KEY (bar, baz)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='this is a new comment' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'SnappyCompressor'};
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to