cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Hseu (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CASSANDRA-649) get_range_slice() behavior is inconsistent with get_slice() and multiget_slice() when super_column is set in ColumnParent
Date Tue, 22 Dec 2009 14:40:29 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jonathan Hseu updated CASSANDRA-649:
------------------------------------

    Description: 
Here's an example using my python library ( http://github.com/vomjom/pycasso ):

>>> import pycasso
>>> connect = pycasso.connect()
>>> cf = pycasso.ColumnFamily(connect, 'Test Keyspace', 'Test Super', super=True)
>>> cf.insert('key1', {'2': {'sub3': 'val3', 'sub4': 'val4'}})

>>> cf.get('key1')
{'2': {'sub4': 'val4', 'sub3': 'val3'}}
>>> cf.get('key1', super_column='2')
{'sub4': 'val4', 'sub3': 'val3'}

>>> cf.multiget(['key1'])
{'key1': {'2': {'sub4': 'val4', 'sub3': 'val3'}}}
>>> cf.multiget(['key1'], super_column='2')
{'key1': {'sub4': 'val4', 'sub3': 'val3'}}

>>> list(cf.get_range())
[('key1', {'2': {'sub4': 'val4', 'sub3': 'val3'}})]
>>> list(cf.get_range(super_column='2'))
[('key1', {'2': {'sub4': 'val4', 'sub3': 'val3'}})]

In the last case, I expected:
[('key1', {'sub4': 'val4', 'sub3': 'val3'})]

If the super_column argument is supplied, then all of these make a ColumnParent with:

cp = ColumnParent(column_family=self.column_family, super_column=super_column)

Or basically, in the KeySlice returned by get_range_slice(), if super_column was set in the
passed in the ColumnParent, the columns member of the KeySlice should be a list of respective
SuperColumn.columns and not a list of SuperColumn.

Another way to describe the problem:
get_slice(), multiget_slice(), and get_range_slice() all return:
list<ColumnOrSuperColumn> in their return values in some way or another.

If super_column is set in the ColumnParent then:
1. get_slice() and multiget_slice() return the list of SuperColumn.columns each wrapped in
a ColumnOrSuperColumn
2. get_range_slice() returns a list of ONE SuperColumn wrapped in a ColumnOrSuperColumn

  was:
Here's an example using my python library ( http://github.com/vomjom/pycasso ):

>>> import pycasso
>>> connect = pycasso.connect()
>>> cf = pycasso.ColumnFamily(connect, 'Test Keyspace', 'Test Super', super=True)
>>> cf.insert('key1', {'2': {'sub3': 'val3', 'sub4': 'val4'}})

>>> cf.get('key1')
{'2': {'sub4': 'val4', 'sub3': 'val3'}}
>>> cf.get('key1', super_column='2')
{'sub4': 'val4', 'sub3': 'val3'}

>>> cf.multiget(['key1'])
{'key1': {'2': {'sub4': 'val4', 'sub3': 'val3'}}}
>>> cf.multiget(['key1'], super_column='2')
{'key1': {'sub4': 'val4', 'sub3': 'val3'}}

>>> list(cf.get_range())
[('key1', {'2': {'sub4': 'val4', 'sub3': 'val3'}})]
>>> list(cf.get_range(super_column='2'))
[('key1', {'2': {'sub4': 'val4', 'sub3': 'val3'}})]

In the last case, I expected:
[('key1', {'sub4': 'val4', 'sub3': 'val3'})]

If the super_column argument is supplied, then all of these make a ColumnParent with:

cp = ColumnParent(column_family=self.column_family, super_column=super_column)

Or basically, in the KeySlice returned by get_range_slice(), if super_column was set in the
passed in the ColumnParent, the columns member of the KeySlice should be a list of respective
SuperColumn.columns and not a list of SuperColumn.

Another way to describe the problem:
get_slice(), multiget_slice(), and get_range_slice() all return:
list<ColumnOrSuperColumn> in their return values in some way or another.

If super_column is set in the ColumnParent then:
1. get_slice() and multiget_slice() return a list of SuperColumn.columns each wrapped in a
ColumnOrSuperColumn
2. get_range_slice() returns a list of ONE SuperColumn wrapped in a ColumnOrSuperColumn


> get_range_slice() behavior is inconsistent with get_slice() and multiget_slice() when
super_column is set in ColumnParent
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-649
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-649
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Linux
>            Reporter: Jonathan Hseu
>
> Here's an example using my python library ( http://github.com/vomjom/pycasso ):
> >>> import pycasso
> >>> connect = pycasso.connect()
> >>> cf = pycasso.ColumnFamily(connect, 'Test Keyspace', 'Test Super', super=True)
> >>> cf.insert('key1', {'2': {'sub3': 'val3', 'sub4': 'val4'}})
> >>> cf.get('key1')
> {'2': {'sub4': 'val4', 'sub3': 'val3'}}
> >>> cf.get('key1', super_column='2')
> {'sub4': 'val4', 'sub3': 'val3'}
> >>> cf.multiget(['key1'])
> {'key1': {'2': {'sub4': 'val4', 'sub3': 'val3'}}}
> >>> cf.multiget(['key1'], super_column='2')
> {'key1': {'sub4': 'val4', 'sub3': 'val3'}}
> >>> list(cf.get_range())
> [('key1', {'2': {'sub4': 'val4', 'sub3': 'val3'}})]
> >>> list(cf.get_range(super_column='2'))
> [('key1', {'2': {'sub4': 'val4', 'sub3': 'val3'}})]
> In the last case, I expected:
> [('key1', {'sub4': 'val4', 'sub3': 'val3'})]
> If the super_column argument is supplied, then all of these make a ColumnParent with:
> cp = ColumnParent(column_family=self.column_family, super_column=super_column)
> Or basically, in the KeySlice returned by get_range_slice(), if super_column was set
in the passed in the ColumnParent, the columns member of the KeySlice should be a list of
respective SuperColumn.columns and not a list of SuperColumn.
> Another way to describe the problem:
> get_slice(), multiget_slice(), and get_range_slice() all return:
> list<ColumnOrSuperColumn> in their return values in some way or another.
> If super_column is set in the ColumnParent then:
> 1. get_slice() and multiget_slice() return the list of SuperColumn.columns each wrapped
in a ColumnOrSuperColumn
> 2. get_range_slice() returns a list of ONE SuperColumn wrapped in a ColumnOrSuperColumn

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message