Currently, CQL 3.0 doesn't allow creating an index on a dynamic CF (with COMPACT STORAGE). The goal of this ticket is not to support the composite case however (
CASSANDRA-3680 will tackle this).
I think changes needed to support this are only in the CQL side and covert two area:
- Finding a syntax for it
- Currently, the CQL 3 code consider that a CF with any column_metadata defined is a non-compact cf. Basically the problem is that we currently use column_metadata both for defining a name for a column in the static case, and store indexing information. Ideally, we would separate those informations, i.e. we could add a new map valueAliases (ByteBuffer -> AbstractType) to CFMetadata (only used by static CF) and we would keep column_metadata for indexing purpose only. However that may be problematic for backward compatibility (with thrift in particular), so probably instead we can just add a new boolean isStaticColumnName to ColumnDefinition.