>
> Is it possible to use fields on the UDT as primary / cluster keys?


That is not supported as far as I know.  In that case it's probably best to
either use a frozen UDT or make the field a separate column.

Thanks,
Andy

On Mon, Oct 10, 2016 at 11:50 PM, Jonathan Haddad <j...@jonhaddad.com> wrote:

> Works for me.  You can see the version, CREATE TYPE, CREATE TABLE,
> insertion, and describing the table
>
> jhaddad@rustyrazorblade ~/dev/cassandra$ bin/cqlsh
>
>  c1fa214
> Connected to Test Cluster at 127.0.0.1:9042.
> [cqlsh 5.0.1 | Cassandra 3.9-SNAPSHOT | CQL spec 3.4.2 | Native protocol
> v4]
> Use HELP for help.
> cqlsh> create KEYSPACE test
>               <identifier>  <quotedName>
> cqlsh> create KEYSPACE test WITH replication = {'class': 'SimpleStrategy',
> 'replication_factor': 1};
> cqlsh> use test;
> cqlsh:test> CREATE TYPE test (
>         ... foo text,
>         ... bar text
>         ... );
> cqlsh:test>
> cqlsh:test> CREATE TABLE test_table (
>         ... id text,
>         ... this_doesnt_work test,
>         ... PRIMARY KEY (id)
>         ... );
> cqlsh:test> insert into test_table ( id, this_doesnt_work) values ('jon',
> {foo:'a', bar:'b'});
> cqlsh:test>
> cqlsh:test> insert into test_table ( id, this_doesnt_work) values
> ('haddad', {foo:'a'});
> cqlsh:test> desc test_table;
>
> CREATE TABLE test.test_table (
>     id text PRIMARY KEY,
>     this_doesnt_work test
> ) WITH bloom_filter_fp_chance = 0.01
>
>
> On Mon, Oct 10, 2016 at 9:25 PM Ali Akhtar <ali.rac...@gmail.com> wrote:
>
>> CREATE TYPE test (
>> foo text,
>> bar text
>> );
>>
>> CREATE TABLE test_table (
>> id text,
>> this_doesnt_work test,
>> PRIMARY KEY (id)
>> );
>>
>> On Tue, Oct 11, 2016 at 9:23 AM, Andrew Tolbert <
>> andrew.tolb...@datastax.com> wrote:
>>
>> Can you please share an example where it doesn't work?
>>
>> Thanks,
>> Andy
>>
>> On Mon, Oct 10, 2016 at 11:21 PM Ali Akhtar <ali.rac...@gmail.com> wrote:
>>
>> Not sure I understand the question, sorry.
>>
>> The column isn't part of the primary key.
>>
>> I defined a UDT and then I tried to define a column (not primary or
>> cluster key) as being of that type, but it doesn't let me do that unless i
>> set it as frozen. Docs indicate otherwise though
>>
>> On Tue, Oct 11, 2016 at 9:09 AM, Andrew Tolbert <
>> andrew.tolb...@datastax.com> wrote:
>>
>> Is the column you are using that has the UDT type is the or is part of
>> the primary key?  If that is the case it still needs to be frozen (the same
>> goes for list, set, tuple as part of primary key).  This is the error I get
>> when I try that:
>>
>> InvalidRequest: Error from server: code=2200 [Invalid query]
>> message="Invalid non-frozen user-defined type for PRIMARY KEY component
>> basics"
>>
>> Andy
>>
>> On Mon, Oct 10, 2016 at 8:27 PM Ali Akhtar <ali.rac...@gmail.com> wrote:
>>
>> According to http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCrea
>> teUDT.html
>>
>> >  In Cassandra 3.6 and later, the frozen keyword is not required for
>> UDTs that contain only non-collection fields.
>>
>> However if I create a type with 4-5 all text fields, and try to use that
>> type in another table, I get told to use frozen , even though I'm on
>> cassandra 3.9
>>
>> >  show VERSION
>> > [cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4]
>>
>> Any ideas?
>>
>>
>>
>>

Reply via email to