cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Lerer (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7423) Allow updating individual subfields of UDT
Date Wed, 06 Apr 2016 15:11:26 GMT


Benjamin Lerer commented on CASSANDRA-7423:

I see a weird behavior when playing with auto-completion.
cqlsh> create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor':
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>
= .
but if I press TAB after {{update test SET u.}} I get:
cqlsh:test> update test SET u.<identifier>
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:
>             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

View raw message