[ https://issues.apache.org/jira/browse/CASSANDRA-7857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14117499#comment-14117499 ]
Jonathan Ellis commented on CASSANDRA-7857: ------------------------------------------- I'm okay with either. {{tuple<int, list<int> packed>}} looks a bit odd, but on the other hand it's good to disambiguate that {{packed}} isn't actually a data type. > Ability to froze UDT > -------------------- > > Key: CASSANDRA-7857 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7857 > Project: Cassandra > Issue Type: Improvement > Reporter: Sylvain Lebresne > Assignee: Sylvain Lebresne > Fix For: 2.1.0 > > Attachments: 7857.txt > > > Currently, UDT are serialized into a single value. For 3.0, we want to change > that somewhat and allow updating individual subfields: CASSANDRA-7423 (and > ultimately, we'll probably allow querying subpart of UDT to some extend). > Also for 3.0, we want to allow some nesting of collections (CASSANDRA-7826). > However, migrating the currently serialized UDT would be challenging. Besides > that, even with nested collections, we probably won't be able to support > nesting within map keys and sets without serializing (at the very least, not > initially). Also, it can be useful in some specific case to have UDT or > collections for PK columns, even if those are serialized. > So we need a better way to distinguish when a composite types (collections & > UDT) are serialized (which imply you can't update subpart of the value, you > have to rewrite it fully) and when they are not. The suggestion is then to > introduce a new keyword, {{frozen}}, to indicate that a type is serialized: > {noformat} > CREATE TYPE foo (a int, b int); > CREATE TABLE bar ( > k frozen<foo> PRIMARY KEY, > m map<frozen<set<int>>, text> > ) > {noformat} > A big advantage is that it makes the downside (you can't update the value > without rewriting it all) clear and upfront. > Now, as of 2.1, we only support frozen UDT, and so we should make this clear > by 1) adding the frozen keyword and 2) don't allow use of UDT unless they are > "frozen" (since that's all we really support). This is what this ticket > proposes to do. And this should be done in 2.1.0 or this will be a breaking > change. > We will have a follow-up ticket that will extend {{frozen}} to collection, > but this is less urgent since this will be strictly an improvement. > I'll note that in term of syntax, {{serialized}} was suggested as an > alternative to {{frozen}}. I personally have a minor preference for > {{serialized}} but it was argued that it had a "sequential" connotation which > {{frozen}} don't have. Changing that is still up for discussion, but we need > to reach a decision quickly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)