You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (JIRA)" <ji...@apache.org> on 2015/03/03 03:45:04 UTC

[jira] [Commented] (CASSANDRA-8879) Alter table on compact storage broken

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

Aleksey Yeschenko commented on CASSANDRA-8879:
----------------------------------------------

[~nickmbailey] Your example is not supposed to work (can't change from blob to ascii, only the other way around).

That said, it does indeed seem like an oversight of CASSANDRA-4041. There are no obvious reasons why this shouldn't be supported, however there might be a non-obvious one there.

In a non-composite, mixed thrift column family we'd use the comparator to serialize column names in system.schema_columns (AbstractType#getString() and AbstractType#fromString()). I'm afraid that we need to go and change all those REGULAR columns on an alter like that, or else.

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