David Capwell created CASSANDRA-19889:
-----------------------------------------

             Summary: Indexing a frozen collection that is the clustering key 
and reversed is rejected
                 Key: CASSANDRA-19889
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19889
             Project: Cassandra
          Issue Type: Bug
          Components: CQL/Interpreter
            Reporter: David Capwell


{code}
CREATE TABLE tbl (
  pk int,
  ck frozen<list<int>>,
  value int,
  PRIMARY KEY(pk, ck)
)
WITH CLUSTERING ORDER BY (ck DESC)
{code}

If you index “ck” it will fail

{code}
CREATE INDEX ON tbl(FULL(ck));
{code}

The failure error is

{code}
Caused by: org.apache.cassandra.exceptions.InvalidRequestException: full() 
indexes can only be created on frozen collections
        at 
org.apache.cassandra.cql3.statements.schema.AlterSchemaStatement.ire(AlterSchemaStatement.java:222)
        at 
org.apache.cassandra.cql3.statements.schema.CreateIndexStatement.validateIndexTarget(CreateIndexStatement.java:250)
        at 
org.apache.cassandra.cql3.statements.schema.CreateIndexStatement.lambda$apply$1(CreateIndexStatement.java:177)
{code}

The reason?  We have a ReverseType column!  We must “unwrap” the type before 
this check...

Basic test

{code}
schemaChange(format("CREATE TABLE %s.tbl (\n" +
                            "  pk int,\n" +
                            "  ck frozen<list<int>>,\n" +
                            "  value int,\n" +
                            "  PRIMARY KEY(pk, ck)\n" +
                            ")\n" +
                            "WITH CLUSTERING ORDER BY (ck DESC)", KEYSPACE));
schemaChange(format("CREATE INDEX ON %s.tbl(FULL(ck));", KEYSPACE));
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to