cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Petrov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-7826) support non-frozen, nested collections
Date Tue, 26 Apr 2016 09:50:13 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15257833#comment-15257833
] 

Alex Petrov edited comment on CASSANDRA-7826 at 4/26/16 9:49 AM:
-----------------------------------------------------------------

We can reasonably support nesting for {{map}} and {{set}} nested within {{map}}. Although
complex data types ({{set}} and {{map}}) can (or should) be reasonably supported only as values.
This would also mean that nesting {{map}} inside of {{set}} (since set elements are serialized
into the cell path) would also not be supported. Allowing them as a key would make the writes
much more complicated, as, for example, in order to update map that has a nested map element
as a key: 

{code}
{{a: 1} {b: 2 c: 3}}
{code}

Would result into cell paths with serialised map (schematically speaking): {{(a: 1) b}} and
{{(a: 1) c}}. 

Although having nested collections as value makes most of sense, too, since it was exactly
the point of simplifying nested lookups and allowing deep updates without re-reading a whole
structure.

So far, I've made the cell multi-level and adjusted {{MapType}} and {{SetType}} to support
nested traversals, allowed multi-level {{Value}} s for both Map and Set. I'd need to do some
more adjustments to make it more presentable, but other than that it starts showing first
promises.


was (Author: ifesdjeen):
We can reasonably support nesting for {{map}} and {{set}} nested within {{map}}. Although
complex data types ({{set}} and {{map}}) can (or should) be reasonably supported only as values.
This would also mean that nesting {{map}} inside of {{set}} (since set elements are serialized
into the cell path) would also not be supported. Allowing them as a key would make the writes
much more complicated, as, for example, in order to update map that has a nested map element
as a key: 

{code}
{{a: 1} {b: 2 c: 3}}
{code}

Would result into cell paths with serialised map (schematically speaking): {{ {a: 1} b}} and
{{ {a: 1} c }}. 

Although having nested collections as value makes most of sense, too, since it was exactly
the point of simplifying nested lookups and allowing deep updates without re-reading a whole
structure.

So far, I've made the cell multi-level and adjusted {{MapType}} and {{SetType}} to support
nested traversals, allowed multi-level {{Value}}s for both Map and Set. I'd need to do some
more adjustments to make it more presentable, but other than that it starts showing first
promises.

> support non-frozen, nested collections
> --------------------------------------
>
>                 Key: CASSANDRA-7826
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7826
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL
>            Reporter: Tupshin Harper
>            Assignee: Alex Petrov
>              Labels: ponies
>             Fix For: 3.x
>
>
> The inability to nest collections is one of the bigger data modelling limitations we
have right now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message