problems with python client

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

problems with python client

Kevin Castiglione
i have inserted a row into the table Table1 and Standard1 column family. And this works with the cassandra-cli

cassandra> get Table1.Standard1['1']
COLUMN_TIMESTAMP = 1246942866; COLUMN_VALUE = 24; COLUMN_KEY = age;
COLUMN_TIMESTAMP = 1246943353; COLUMN_VALUE = Chris Goffinet; COLUMN_KEY = name;
Statement processed.


but if i try to get this data using the python client I get an empty list:
>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1', start='0', finish='100', isAscending=True, offset=-1, count=1000)
[ ]

this is the output from cassandra
DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1', columnFamily='Standard1', isAscending='true', limit='-1', count='1000')
DEBUG - clearing


also notice that the argument 'offset' in the python client is actually passed to cassandra as 'limit'.


is there something im missing here?
thanks
Reply | Threaded
Open this post in threaded view
|

Re: problems with python client

Jonathan Ellis-3
you want

start=''
finish=''
offset=0

On Tue, Jul 7, 2009 at 8:01 AM, Kevin
Castiglione<[hidden email]> wrote:

> i have inserted a row into the table Table1 and Standard1 column family. And
> this works with the cassandra-cli
>
> cassandra> get Table1.Standard1['1']
> COLUMN_TIMESTAMP = 1246942866; COLUMN_VALUE = 24; COLUMN_KEY = age;
> COLUMN_TIMESTAMP = 1246943353; COLUMN_VALUE = Chris Goffinet; COLUMN_KEY =
> name;
> Statement processed.
>
>
> but if i try to get this data using the python client I get an empty list:
>>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1',
>>>> start='0', finish='100', isAscending=True, offset=-1, count=1000)
> [ ]
>
> this is the output from cassandra
> DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1',
> columnFamily='Standard1', isAscending='true', limit='-1', count='1000')
> DEBUG - clearing
>
>
> also notice that the argument 'offset' in the python client is actually
> passed to cassandra as 'limit'.
>
>
> is there something im missing here?
> thanks
>
Reply | Threaded
Open this post in threaded view
|

Re: problems with python client

Kevin Castiglione
thanks a lot for this! it works.
can you pl. explain what start, finish, isAscending are?


also the value i pass to offset gets passed to cassandra as limit, is this expected?


>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1', start='', finish='', isAscending=True, offset=-1, count=1000)
[column_t(columnName='age', value='24', timestamp=1246942866), column_t(columnName='name', value='Chris Goffinet', timestamp=1246943353)]

DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1', columnFamily='Standard1', isAscending='true', limit='-1', count='1000')



On Tue, Jul 7, 2009 at 6:12 AM, Jonathan Ellis <[hidden email]> wrote:
you want

start=''
finish=''
offset=0

On Tue, Jul 7, 2009 at 8:01 AM, Kevin
Castiglione<[hidden email]> wrote:
> i have inserted a row into the table Table1 and Standard1 column family. And
> this works with the cassandra-cli
>
> cassandra> get Table1.Standard1['1']
> COLUMN_TIMESTAMP = 1246942866; COLUMN_VALUE = 24; COLUMN_KEY = age;
> COLUMN_TIMESTAMP = 1246943353; COLUMN_VALUE = Chris Goffinet; COLUMN_KEY =
> name;
> Statement processed.
>
>
> but if i try to get this data using the python client I get an empty list:
>>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1',
>>>> start='0', finish='100', isAscending=True, offset=-1, count=1000)
> [ ]
>
> this is the output from cassandra
> DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1',
> columnFamily='Standard1', isAscending='true', limit='-1', count='1000')
> DEBUG - clearing
>
>
> also notice that the argument 'offset' in the python client is actually
> passed to cassandra as 'limit'.
>
>
> is there something im missing here?
> thanks
>

Reply | Threaded
Open this post in threaded view
|

Re: problems with python client

Jonathan Ellis-3
On Tue, Jul 7, 2009 at 8:19 AM, Kevin
Castiglione<[hidden email]> wrote:
> thanks a lot for this! it works.
> can you pl. explain what start, finish, isAscending are?

start = column name to start with
finish = " " to stop with
ascending = order to return columns in

> also the value i pass to offset gets passed to cassandra as limit, is this
> expected?

not sure what you mean.
Reply | Threaded
Open this post in threaded view
|

Re: problems with python client

Matt Revelle-2
In reply to this post by Kevin Castiglione
The "start" and "finish" columns specify the range of columns to be retrieved.  

For example, start="age" and finish="height" would get you the age column but would not include the name column.  I would assume "isAscending" is the order of the returned columns.

On Jul 7, 2009, at 9:19 AM, Kevin Castiglione wrote:

thanks a lot for this! it works.
can you pl. explain what start, finish, isAscending are?


also the value i pass to offset gets passed to cassandra as limit, is this expected?


>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1', start='', finish='', isAscending=True, offset=-1, count=1000)
[column_t(columnName='age', value='24', timestamp=1246942866), column_t(columnName='name', value='Chris Goffinet', timestamp=1246943353)]

DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1', columnFamily='Standard1', isAscending='true', limit='-1', count='1000')



On Tue, Jul 7, 2009 at 6:12 AM, Jonathan Ellis <[hidden email]> wrote:
you want

start=''
finish=''
offset=0

On Tue, Jul 7, 2009 at 8:01 AM, Kevin
Castiglione<[hidden email]> wrote:
> i have inserted a row into the table Table1 and Standard1 column family. And
> this works with the cassandra-cli
>
> cassandra> get Table1.Standard1['1']
> COLUMN_TIMESTAMP = 1246942866; COLUMN_VALUE = 24; COLUMN_KEY = age;
> COLUMN_TIMESTAMP = 1246943353; COLUMN_VALUE = Chris Goffinet; COLUMN_KEY =
> name;
> Statement processed.
>
>
> but if i try to get this data using the python client I get an empty list:
>>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1',
>>>> start='0', finish='100', isAscending=True, offset=-1, count=1000)
> [ ]
>
> this is the output from cassandra
> DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1',
> columnFamily='Standard1', isAscending='true', limit='-1', count='1000')
> DEBUG - clearing
>
>
> also notice that the argument 'offset' in the python client is actually
> passed to cassandra as 'limit'.
>
>
> is there something im missing here?
> thanks
>


Reply | Threaded
Open this post in threaded view
|

Re: problems with python client

Kevin Castiglione
In reply to this post by Jonathan Ellis-3
On Tue, Jul 7, 2009 at 6:26 AM, Jonathan Ellis <[hidden email]> wrote:
> also the value i pass to offset gets passed to cassandra as limit, is this
> expected?


not sure what you mean.

for the function get_slice, there is an argument offset. what does that do? whatever value i pass to it, the cassandra server receives it as the argument limit?
this is the python code:
>>> client.get_slice(tablename='Table1', key='1', columnParent='Standard1', start='', finish='', isAscending=True, offset=-1, count=1000)

this is the debug log from cassandra.
DEBUG - weakreadlocal reading SliceFromReadCommand(table='Table1', key='1', columnFamily='Standard1', isAscending='true', limit='-1', count='1000')

you can see that i passed the value -1 to offset and in the cassandra server log, it is received as the argument limit.
offset and limit mean different things right? is this a problem in python client? or am i missing something here?
thanks
Reply | Threaded
Open this post in threaded view
|

Re: problems with python client

Jonathan Ellis-3
On Tue, Jul 7, 2009 at 8:31 AM, Kevin
Castiglione<[hidden email]> wrote:
> you can see that i passed the value -1 to offset and in the cassandra server
> log, it is received as the argument limit.
> offset and limit mean different things right? is this a problem in python
> client? or am i missing something here?

ah, that just means I forgot to update toString on the java side. :)