[
https://issues.apache.org/jira/browse/CASSANDRA-6438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13866873#comment-13866873
]
Russ Hatch commented on CASSANDRA-6438:
---------------------------------------
I'm running into a snag traying to work with the new functionality.
My dtests now error out when I try to create a type without an active keyspace,
which seems reasonable to me (unless we want to allow the creation of user
types outside any keyspace).
The problem I'm running into is I become disconnected from the node when trying
to create a user type within a keyspace:
Here's a setup that should replicate:
{noformat}
ccm create test_cluster
ccm populate -n 2
ccm start
ccm node1 cqlsh
cqlsh> create keyspace user_type_renaming with replication =
{'class':'SimpleStrategy', 'replication_factor':2} ;
cqlsh> use user_type_renaming;
cqlsh:user_type_renaming> create type simple_type (user_number int);
TSocket read 0 bytes
Here's the exception found in the node's log:
ERROR [Thrift:1] 2014-01-09 11:14:57,996 CustomTThreadPoolServer.java:212 -
Error occurred during processing of message.
java.lang.ClassCastException: java.nio.HeapByteBuffer cannot be cast to
java.lang.String
at
org.apache.cassandra.serializers.AbstractTextSerializer.serialize(AbstractTextSerializer.java:26)
~[main/:na]
at
org.apache.cassandra.db.marshal.AbstractType.decompose(AbstractType.java:71)
~[main/:na]
at org.apache.cassandra.db.CFRowAdder.add(CFRowAdder.java:106)
~[main/:na]
at org.apache.cassandra.db.CFRowAdder.addListEntry(CFRowAdder.java:87)
~[main/:na]
at org.apache.cassandra.config.UTMetaData.toSchema(UTMetaData.java:104)
~[main/:na]
at org.apache.cassandra.config.UTMetaData.toSchema(UTMetaData.java:90)
~[main/:na]
at
org.apache.cassandra.service.MigrationManager.announceNewType(MigrationManager.java:238)
~[main/:na]
at
org.apache.cassandra.cql3.statements.CreateTypeStatement.announceMigration(CreateTypeStatement.java:128)
~[main/:na]
at
org.apache.cassandra.cql3.statements.SchemaAlteringStatement.execute(SchemaAlteringStatement.java:71)
~[main/:na]
at
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:194)
~[main/:na]
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:228)
~[main/:na]
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:218)
~[main/:na]
at
org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1966)
~[main/:na]
at
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4486)
~[thrift/:na]
at
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4470)
~[thrift/:na]
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
~[libthrift-0.9.1.jar:0.9.1]
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
~[libthrift-0.9.1.jar:0.9.1]
at
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:194)
~[main/:na]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_45]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
{noformat}
> Make user types keyspace scoped
> -------------------------------
>
> Key: CASSANDRA-6438
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6438
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Sylvain Lebresne
> Assignee: Sylvain Lebresne
> Fix For: 2.1
>
> Attachments: 6438.txt
>
>
> Currently, user types are declared at the top level. I wonder however if we
> might not want to make them scoped to a given keyspace. It was not done in
> the initial patch for simplicity and because I was not sure of the advantages
> of doing so. However, if we ever want to use user types in system tables,
> having them scoped by keyspace means we won't have to care about the new type
> conflicting with another existing type.
> Besides, having user types be part of a keyspace would allow for slightly
> more fine grained permissions on them.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)