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

Oskar Kjellin commented on CASSANDRA-9148:
------------------------------------------

Running cassandra 2.1.4. In docker, not sure if that really should differ in 
this case.

I just tried to reproduce it using only cql and I managed to quite easily using 
the following commands:

CREATE TYPE test (foo text);
CREATE TABLE testtable (id text, map frozen<map<text,test>>, primary key (id));
INSERT INTO testtable (id, map) VALUES ('foo', {'foo':{foo:'bar'}});
ALTER  TYPE test add bar text;

When altering the type I actually got a:
ServerError: <ErrorMessage code=0000 [Server error] 
message="java.lang.NullPointerException">

Trying to add it again I got:
InvalidRequest: code=2200 [Invalid query] message="Cannot add new field bar to 
type test.test: a field of the same name already exists"

So I tried to do an insert:
INSERT INTO testtable (id, map) VALUES ('foo', {'foo':{foo:'bar', bar:'foo'}});

Which returned:
InvalidRequest: code=2200 [Invalid query] message="Unknown field 'bar' in value 
of user defined type test"

However:
cqlsh:test> DESC TYPE test;

CREATE TYPE test.test (
    foo text,
    bar text
);


> Issue when modifying UDT
> ------------------------
>
>                 Key: CASSANDRA-9148
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9148
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Oskar Kjellin
>             Fix For: 2.1.5
>
>
> I'm trying out the user defined types but ran into some issues when adding a 
> column to an existing type.
> Unfortunately I had to scrap the entire cluster so I cannot access it any 
> more.
> After creating the UDT i adde two tables using it. 1 was just using 
> frozen<type>. The other was using both frozen<type> frozen map<String, type>.
> Then I realized I needed to add a new field to the user type. Then when I 
> tried to put to any of the two tables (setting all fields to the UDT in the 
> datastax java driver) I got this error message that I could not find anywhere 
> else but in the cassandra code:
> com.datastax.driver.core.exceptions.InvalidQueryException: Invalid remaining 
> data after end of UDT value
> I had to scrap my keyspace in order to be able to use it again. Could not 
> even drop one of the tables.
> I know that they are frozen so we cannot modify the value of individual 
> fields once they are written but we must be able to modify the schema right?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to