cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Lerer (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-7423) Allow updating individual subfields of UDT
Date Fri, 08 Apr 2016 12:51:25 GMT

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

Benjamin Lerer edited comment on CASSANDRA-7423 at 4/8/16 12:50 PM:
--------------------------------------------------------------------

I see a weird behavior when playing with auto-completion.
{code}
cqlsh> create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor':
1};
cqlsh> use test;
cqlsh:test> create type t (a int, b int);
cqlsh:test> create table test (pk int primary key, u t, v int);
cqlsh:test> update test set  <TAB>
u v
cqlsh:test> update test set u <TAB>
= .
{code}
but if I press TAB after {{update test SET u.}} I get:
{code}
cqlsh:test> update test SET u.<identifier>
{code}
whereas I would have expected {{<identifier>}} on the following line (or even better:
{{a b}} ;-))


was (Author: blerer):
I see a weird behavior when playing with auto-completion.
{code}
cqlsh> create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor':
1};
cqlsh> use test;
cqlsh:test> create type t (a int, b int);
cqlsh:test> create table test (pk int primary key, u t, v int);
cqlsh:test> update test set  <TAB>
u v
cqlsh:test> update test2 set u <TAB>
= .
{code}
but if I press TAB after {{update test SET u.}} I get:
{code}
cqlsh:test> update test SET u.<identifier>
{code}
whereas I would have expected {{<identifier>}} on the following line (or even better:
{{a b}} ;-))

> Allow updating individual subfields of UDT
> ------------------------------------------
>
>                 Key: CASSANDRA-7423
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7423
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL
>            Reporter: Tupshin Harper
>            Assignee: Tyler Hobbs
>              Labels: client-impacting, cql, docs-impacting
>             Fix For: 3.x
>
>
> Since user defined types were implemented in CASSANDRA-5590 as blobs (you have to rewrite
the entire type in order to make any modifications), they can't be safely used without LWT
for any operation that wants to modify a subset of the UDT's fields by any client process
that is not authoritative for the entire blob. 
> When trying to use UDTs to model complex records (particularly with nesting), this is
not an exceptional circumstance, this is the totally expected normal situation. 
> The use of UDTs for anything non-trivial is harmful to either performance or consistency
or both.
> edit: to clarify, i believe that most potential uses of UDTs should be considered anti-patterns
until/unless we have field-level r/w access to individual elements of the UDT, with individual
timestamps and standard LWW semantics



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

Mime
View raw message