[
https://issues.apache.org/jira/browse/CASSANDRA-8879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14345640#comment-14345640
]
Nick Bailey commented on CASSANDRA-8879:
----------------------------------------
FWIW, that is essentially the case I was hitting. This was a thrift table that
I know contains only ascii data and rather than deal with hex/bytes i wanted to
just update the schema. I can see the argument for not allowing this since you
could be shooting yourself in the foot if the actual data isn't the right type.
On the other hand the user-friendliness of having to alter my schema with
thrift (in not completely obvious ways) leaves something to be desired as well.
Either way thats probably separate from the actual bug in this ticket (since
it's broken going bytes->ascii or ascii->bytes).
> Alter table on compact storage broken
> -------------------------------------
>
> Key: CASSANDRA-8879
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8879
> Project: Cassandra
> Issue Type: Bug
> Reporter: Nick Bailey
> Assignee: Tyler Hobbs
> Fix For: 2.0.13
>
> Attachments: 8879-2.0.txt
>
>
> In 2.0 HEAD, alter table on compact storage tables seems to be broken. With
> the following table definition, altering the column breaks cqlsh and
> generates a stack trace in the log.
> {noformat}
> CREATE TABLE settings (
> key blob,
> column1 blob,
> value blob,
> PRIMARY KEY ((key), column1)
> ) WITH COMPACT STORAGE
> {noformat}
> {noformat}
> cqlsh:OpsCenter> alter table settings ALTER column1 TYPE ascii ;
> TSocket read 0 bytes
> cqlsh:OpsCenter> DESC TABLE settings;
> {noformat}
> {noformat}
> ERROR [Thrift:7] 2015-02-26 17:20:24,640 CassandraDaemon.java (line 199)
> Exception in thread Thread[Thrift:7,5,main]
> java.lang.AssertionError
> >...at
> >org.apache.cassandra.cql3.statements.AlterTableStatement.announceMigration(AlterTableStatement.java:198)
> >...at
> >org.apache.cassandra.cql3.statements.SchemaAlteringStatement.execute(SchemaAlteringStatement.java:79)
> >...at
> >org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:158)
> >...at
> >org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:175)
> >...at
> >org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1958)
> >...at
> >org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4486)
> >...at
> >org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4470)
> >...at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
> >...at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
> >...at
> >org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:204)
> >...at
> >java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >...at
> >java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >...at java.lang.Thread.run(Thread.java:724)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)