You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Olivier Michallat (JIRA)" <ji...@apache.org> on 2015/09/15 12:25:45 UTC

[jira] [Created] (CASSANDRA-10339) Prevent ALTER TYPE from creating circular references

Olivier Michallat created CASSANDRA-10339:
---------------------------------------------

             Summary: Prevent ALTER TYPE from creating circular references
                 Key: CASSANDRA-10339
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10339
             Project: Cassandra
          Issue Type: Bug
            Reporter: Olivier Michallat
            Priority: Minor


It's possible to define circular/recursive types using {{ALTER TYPE}}. They won't work in practice when you try to insert data, but we should detect this earlier and prevent the type modification.

Recursive type example (from [JAVA-908|https://datastax-oss.atlassian.net/browse/JAVA-908]):
{code}
CREATE TYPE node (name text,);
ALTER TYPE node ADD children frozen<list<node>>;
{code}

Circular example (from [Stack overflow|http://stackoverflow.com/questions/29037733/cassandra-2-1-recursion-by-nesting-udts]):
{code}
create type ping(pingid int);
create type pong(pongid int, ping frozen<ping>);
alter type ping ADD pong frozen<pong>;
{code}

Note that, in the circular example, references are properly checked when dropping the types, so neither type can be dropped.



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