[ https://issues.apache.org/jira/browse/CASSANDRA-7656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-7656: -------------------------------------- Component/s: Core API Priority: Minor (was: Major) Fix Version/s: 2.1.0 Assignee: Tyler Hobbs > UDT with null/missing attributes > --------------------------------- > > Key: CASSANDRA-7656 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7656 > Project: Cassandra > Issue Type: Bug > Components: API, Core > Reporter: Jaroslav Kamenik > Assignee: Tyler Hobbs > Priority: Minor > Fix For: 2.1.0 > > > I have experienced problem with queriing UDTs stored with some not filled > attributes through new java driver 2.1. I tried to query them in cqlsh too > and it failed. I tried to simulate it again with fresh C* directly in cqlsh > and it seems it has problems in some cases. I have tested it with UDT defined > as (a ascii, b ascii, c ascii, d ascii, e ascii, f ascii, g ascii). > Few observations: > {noformat} > Store {a:'a'} is ok, it returns {a: 'a', b: '', c: '', d: '', e: '', f: '', > g: ''} > Store {a:'a', b:'b', c:'c', d:'d', e:'e', f:'f', g:'g'} is ok, returns all > filled. > Store {a:'a', g:'g'} fills a only. > Store {a:'a', b:'b', d:'d', e:'e', f:'f', g:'g'} (missing c) failed on load. > Store {a:'a', f:'f', g:'g'} fills just a. > Store {f:'f',g:'g'} nothing filled > Store {e:'e',f:'f',g:'g'} failed on load. > .... > {noformat} > you can reproduce it with: > {noformat} > ./cqlsh > Connected to WOC at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> create keyspace testks WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1}; > cqlsh> use testks; > cqlsh:testks> CREATE TYPE IF NOT EXISTS data (a ascii, b ascii, c ascii, d > ascii, e ascii, f ascii, g ascii); > cqlsh:testks> CREATE TABLE IF NOT EXISTS bbb (a ascii primary key, b data); > cqlsh:testks> insert into testks.bbb (a,b) values ('a', {a:'a'}); > cqlsh:testks> select * from bbb; > a | b > ---+---------------------------------------------------- > a | {a: 'a', b: '', c: '', d: '', e: '', f: '', g: ''} > (1 rows) > cqlsh:testks> insert into testks.bbb (a,b) values ('a', {a:'a', b:'b', c:'c', > d:'d', e:'e', f:'f', g:'g'}); > cqlsh:testks> select * from bbb; > a | b > ---+---------------------------------------------------------- > a | {a: 'a', b: 'b', c: 'c', d: 'd', e: 'e', f: 'f', g: 'g'} > (1 rows) > cqlsh> insert into testks.bbb (a,b) values ('a', {a:'a', g:'g'}); > cqlsh> select * from testks.bbb; > a | b > ---+---------------------------------------------------- > a | {a: 'a', b: '', c: '', d: '', e: '', f: '', g: ''} > (1 rows) > cqlsh:testks> insert into testks.bbb (a,b) values ('a', {a:'a', b:'b', d:'d', > e:'e', f:'f', g:'g'}); > cqlsh:testks> select * from bbb; > Traceback (most recent call last): > File "./cqlsh", line 901, in perform_simple_statement > rows = self.session.execute(statement, trace=self.tracing_enabled) > File > "/srv/apache-cassandra-2.1.0-rc4/bin/../lib/cassandra-driver-internal-only-2.1.0b1.post.zip/cassandra-driver-2.1.0b1.post/cassandra/cluster.py", > line 1186, in execute > result = future.result(timeout) > File > "/srv/apache-cassandra-2.1.0-rc4/bin/../lib/cassandra-driver-internal-only-2.1.0b1.post.zip/cassandra-driver-2.1.0b1.post/cassandra/cluster.py", > line 2610, in result > raise self._final_exception > error: unpack requires a string argument of length 4 > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)