We ran into some similar errors in playorm development.  Basically, you
defined a composite probably but are not correctly using that composite.
I am not sure about queries though as we had the issue when saving data
(ie. Using deviceID+deviceName did not work and we had to create an full
blown composite object).  I think you need to read up on how astyanax
works with compositesŠ..I am not sure this is a cassandra question
reallyŠ.more of an astyanax one.

Dean

On 4/1/13 11:48 PM, "Apurva Jalit" <apurva.ja...@gmail.com> wrote:

>I have a scheme as follows:
>
> TimeStamp
> Device ID
> Device Name
> Device Owner
> Device location
>
>I have created this column family using CQL and defined the primary key
>as 
>(TimeStamp,Device ID, Device Name). Through a serializable object that
>has 
>fields for DeviceID, name and a field name (which stores either Device
>Owner or 
>Device Location). I have inserted some records using Astyanax.
>
>As per my understanding, the columns for a row are created by combining
>Device 
>ID, Device Name and field name as column name and the value to be the
>value for 
>that particular field. Thus for a particular timestamp and device, the
>column 
>names would be in the pattern (Device ID:Device Name: ...).
>
>So I believe we can use these 2 fields as prefix to obtain all the
>entries for a 
>particular time-device combination.
>
>I am using the following query to obtain the results:
>
>  RowSliceQuery<String, ApBaseData> query = adu.keyspace
>  .prepareQuery(columnFamily)
>  .getKeySlice(timeStamp)
>  .withColumnRange(new RangeBuilder()
>   .setStart(deviceID+deviceName+"_\u00000")
>   .setEnd(deviceID+deviceName+"_\uffff")
>   .setLimit(batch_size)
>   .build());
>
>But on executing the above query I get the following Exception:
>
>BadRequestException: [host=localhost(127.0.0.1):9160, latency=6(6),
>attempts=1]InvalidRequestException(why:Not enough bytes to read value of
>component 0)
>
>Can any one help to understand where am I going wrong?
>
>

Reply via email to