cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10721) Altering a UDT might break UDA deserialisation
Date Tue, 08 Dec 2015 05:40:11 GMT


Robert Stupp commented on CASSANDRA-10721:

bq. referencesUserType(String name) does not check the keyspace for the UDT.

AFAIK we don't allow cross-keyspace references at all - so it felt ok to basically copy what's
in {{CQL3Type.Raw.referencesUserType}}.

bq. referencesUserType ... was in AbstractType

That's correct. Moved that to CQL3Type as I thought it's better to not add new stuff to old
API classes. And since the code's not used in a critical path, that change looked maybe not
optimal but reasonable. But I won't fight against moving it back to AbstractType. However
we could thing of keeping a reference to the CQL3Type in AbstractType to optimize that if
it is used in a critical code path.

Will fix the other issues (two points for more utests + removal of isBroken) you mentioned.

> Altering a UDT might break UDA deserialisation
> ----------------------------------------------
>                 Key: CASSANDRA-10721
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL, Distributed Metadata
>            Reporter: Aleksey Yeschenko
>            Assignee: Robert Stupp
>             Fix For: 3.0.x
> CASSANDRA-10650 switched UDA's {{initcond}} serialisation in schema to its CQL literal.
This means that if any particular field is renamed in the UDT, or of its type gets changes,
we will not be able to parse initcond back.
> We should either:
> 1) Forbid renames and type switches in UDTs that are being used in UDAs, or
> 2) Make sure we alter the UDAs in schema alongside the new UDT at all times

This message was sent by Atlassian JIRA

View raw message