Scratch that.... it can change on a per column basis.

Strange world this Java API vs. CQL.

-brian

On Thu, Oct 4, 2012 at 3:57 PM, Brian O'Neill <b...@alumni.brown.edu> wrote:
> Actually, I found the underlying issue...
>
> CQL appends the *name* of the "value" column into the compound key.
>
> Using the previous schema:
> insert into data (uid, t, foo, bar) values ('PI7JC8KRF6',
> '1349110576', 'foovalue', 'barvalue')
>
> list data;
> RowKey: PI7JC8KRF6
> => (column=1970-01-16 09:45:10-0500:foovalue:bar, value=barvalue,
> timestamp=1349380029082000)
>
> Notice "bar" is on the end of the column name.
>
> If you don't have that element represented from the Java API (in this
> case, w/ Astyanax), you end up with misaligned interpretation of the
> compound key.  I'll add an extra element to the composite type in
> Astyanax, which should fix things.  I'll also add this to my blog so
> other people don't get tripped up.
>
> Any insight into why CQL puts that in column name?
> Where does it store the metadata related to compound key
> interpretation? Wouldn't that be a better place for that since it
> shouldn't change within a table?
>
> -brian
>
>
> On Thu, Oct 4, 2012 at 3:39 PM, Brian O'Neill <b...@alumni.brown.edu> wrote:
>> Perfect. Tnx.
>>
>> On Thu, Oct 4, 2012 at 3:37 PM, Jonathan Ellis <jbel...@gmail.com> wrote:
>>> Oh, I see.  I misunderstood at first.  Yes, the thrift side in 1.1
>>> doesn't validate cql3 composites.  This should be fixed in 1.2 beta1;
>>> see 
>>> https://issues.apache.org/jira/browse/CASSANDRA-4377?focusedCommentId=13436817&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13436817
>>>
>>> On Thu, Oct 4, 2012 at 2:31 PM, Brian O'Neill <b...@alumni.brown.edu> wrote:
>>>> I was able to reproduce with CLI.  I'll send over the example as soon
>>>> as I can obfuscate it.
>>>>
>>>> -brian
>>>>
>>>> On Thu, Oct 4, 2012 at 3:19 PM, Jonathan Ellis <jbel...@gmail.com> wrote:
>>>>> Nothing jumps out at me, varchar should be pretty straightforward.
>>>>> Probably going to need a test case.  (Even better if you can repro w/
>>>>> cli instead of needing Astyanax.)
>>>>>
>>>>> On Thu, Oct 4, 2012 at 2:15 PM, Brian O'Neill <b...@alumni.brown.edu> 
>>>>> wrote:
>>>>>> Obfuscated slightly....
>>>>>>
>>>>>> The table is something simliar to:
>>>>>>
>>>>>> CREATE TABLE data (
>>>>>>   uid varchar,
>>>>>>   t timestamp,
>>>>>>   foo varchar,
>>>>>>   bar varchar,
>>>>>>   PRIMARY KEY (uid, t, foo, bar)
>>>>>> );
>>>>>>
>>>>>> Then I can insert just fine via Astyanax and I can see the row via
>>>>>> cli, but the select statement fails in cqlsh.
>>>>>>
>>>>>> The table is fine, when I only interact with it through CQL. I can
>>>>>> insert and select fine, until I insert a row from Asytanax.
>>>>>>
>>>>>> If needed, I can probably create a small test for this that I can share.
>>>>>>
>>>>>> -brian
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 4, 2012 at 3:08 PM, Jonathan Ellis <jbel...@gmail.com> wrote:
>>>>>>> What kind of data did you insert, and what was expected?  Expected
>>>>>>> behavior would be to reject nonconforming data at insert time.
>>>>>>>
>>>>>>> On Thu, Oct 4, 2012 at 2:04 PM, Brian O'Neill <b...@alumni.brown.edu> 
>>>>>>> wrote:
>>>>>>>> This is probably already on your radar, but we could use a better
>>>>>>>> error message from cqlsh when the column key doesn't conform to the
>>>>>>>> expected schema...
>>>>>>>>
>>>>>>>> I accidentally inserted data using Astyanax that didn't conform to the
>>>>>>>> schema.  After that, selects from that table via cqlsh return no
>>>>>>>> useful information.
>>>>>>>> (CLI shows the data just fine)
>>>>>>>>
>>>>>>>>
>>>>>>>> bone@boneill-macbook-wired:~/tools/cassandra-> bin/cassandra-cli
>>>>>>>> Connected to: "Test Cluster" on 127.0.0.1/9160
>>>>>>>> Welcome to Cassandra CLI version 1.1.5
>>>>>>>>
>>>>>>>> Type 'help;' or '?' for help.
>>>>>>>> Type 'quit;' or 'exit;' to quit.
>>>>>>>>
>>>>>>>> [default@unknown] use cirrus;
>>>>>>>> Authenticated to keyspace: cirrus
>>>>>>>> [default@cirrus] list data;
>>>>>>>> Using default limit of 100
>>>>>>>> Using default column limit of 100
>>>>>>>> -------------------
>>>>>>>> RowKey: PI7JC8
>>>>>>>> => (column=*****, value=2014-07-31, timestamp=1349376866686000)
>>>>>>>> -------------------
>>>>>>>> RowKey: PI1234
>>>>>>>> => (column=*****, value=Y, timestamp=1349372660453000)
>>>>>>>>
>>>>>>>> 2 Rows Returned.
>>>>>>>> Elapsed time: 212 msec(s).
>>>>>>>> [default@cirrus] quit;
>>>>>>>> bone@boneill-macbook-wired:~/tools/cassandra-> bin/cqlsh -3
>>>>>>>> Connected to Test Cluster at localhost:9160.
>>>>>>>> [cqlsh 2.2.0 | Cassandra 1.1.5 | CQL spec 3.0.0 | Thrift protocol 
>>>>>>>> 19.32.0]
>>>>>>>> Use HELP for help.
>>>>>>>> cqlsh> use cirrus;
>>>>>>>> cqlsh:cirrus> select * from data;
>>>>>>>> TSocket read 0 bytes
>>>>>>>> cqlsh:cirrus>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Brian ONeill
>>>>>>>> Lead Architect, Health Market Science (http://healthmarketscience.com)
>>>>>>>> mobile:215.588.6024
>>>>>>>> blog: http://brianoneill.blogspot.com/
>>>>>>>> twitter: @boneill42
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Jonathan Ellis
>>>>>>> Project Chair, Apache Cassandra
>>>>>>> co-founder of DataStax, the source for professional Cassandra support
>>>>>>> http://www.datastax.com
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Brian ONeill
>>>>>> Lead Architect, Health Market Science (http://healthmarketscience.com)
>>>>>>
>>>>>> mobile:215.588.6024
>>>>>> blog: http://brianoneill.blogspot.com/
>>>>>> twitter: @boneill42
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Jonathan Ellis
>>>>> Project Chair, Apache Cassandra
>>>>> co-founder of DataStax, the source for professional Cassandra support
>>>>> http://www.datastax.com
>>>>
>>>>
>>>>
>>>> --
>>>> Brian ONeill
>>>> Lead Architect, Health Market Science (http://healthmarketscience.com)
>>>>
>>>> mobile:215.588.6024
>>>> blog: http://brianoneill.blogspot.com/
>>>> twitter: @boneill42
>>>
>>>
>>>
>>> --
>>> Jonathan Ellis
>>> Project Chair, Apache Cassandra
>>> co-founder of DataStax, the source for professional Cassandra support
>>> http://www.datastax.com
>>
>>
>>
>> --
>> Brian ONeill
>> Lead Architect, Health Market Science (http://healthmarketscience.com)
>>
>> mobile:215.588.6024
>> blog: http://brianoneill.blogspot.com/
>> twitter: @boneill42
>
>
>
> --
> Brian ONeill
> Lead Architect, Health Market Science (http://healthmarketscience.com)
>
> mobile:215.588.6024
> blog: http://brianoneill.blogspot.com/
> twitter: @boneill42



-- 
Brian ONeill
Lead Architect, Health Market Science (http://healthmarketscience.com)

mobile:215.588.6024
blog: http://brianoneill.blogspot.com/
twitter: @boneill42

Reply via email to