Added few more information:

I need some help in reading CQL3 Collection type values while getting a
callback to the Custom Secondary Index (cassandra 2.1.0).

Column Family:

CREATE TABLE IF NOT EXISTS test1(
id text,
mymap map<text,text>,
PRIMARY KEY(id)
)

Added value:

Insert into test(id, mymap) values ('1', {'1':'value1'});

Then in my custom class I am trying to read mymap Cell.value() and
deserialize the ByteBuffervalue to get the full map content as below:

To get the row data based on a rowKey in callback:

DecoratedKey dkey = StorageService.getPartitioner().decorateKey(rowKey);
QueryFilter qf =  QueryFilter.getIdentityFilter(dkey,
                  baseCfs.metadata.cfName,
                  Calendar.getInstance().getTimeInMillis());
ColumnFamily cf = baseCfs.getColumnFamily(qf);

for (Cell cell : cf)
{
    if( cell name is "mymap" )
    {
        LOGGER.debug("for column mymap");

        Map<String, String> mymap= MapType.getInstance(UTF8Type.instance,
         UTF8Type.instance).compose(cell.value().duplicate());
        for(String key: mymap.keySet())
        {
            LOGGER.debug("mymapkey [{}]: [{}]", key, mymap.get(key));
        }
    }
}

But I am not getting the values in the persisted in the Map. It says *"Not
enough bytes to read a map"*

Is there anyone who can help?



Regards,
Arindam Bose



On Wed, Aug 27, 2014 at 11:21 AM, Arindam Bose <arindambos...@gmail.com>
wrote:

> Hello,
>
> I need some help in reading CQL3 Collection type values while getting a
> callback to the Custom Secondary Index.
>
> Column Family:
>
> CREATE TABLE IF NOT EXISTS test1(
> id text,
> mymap map<text,text>,
> PRIMARY KEY(id)
> )
>
> Added value:
>
> Insert into test(id, mymap) values ('1', {'1':'value1'});
>
> Then in my custom class I am trying to read mymap Cell.value() and
> deserialize the ByteBuffervalue to get the full map content.
>
> But I am not getting the values as persisted in the mymap Column within
> Cassandra.
>
> Is there anyone who can help?
>
>
> Regards,
> Arindam Bose
>

Reply via email to