Details
-
Improvement
-
Status: Resolved
-
Urgent
-
Resolution: Fixed
-
None
-
Clients
Description
Thrift allows users to define flexible mixed column families - where certain columns would have explicitly pre-defined names, potentially non-default validation types, and be indexed.
Example:
create column family foo and default_validation_class = UTF8Type and column_metadata = [ {column_name: bar, validation_class: Int32Type, index_type: KEYS}, {column_name: baz, validation_class: UUIDType, index_type: KEYS} ];
Columns named bar and baz will be validated as Int32Type and UUIDType, respectively, and be indexed. Columns with any other name will be validated by UTF8Type and will not be indexed.
With CASSANDRA-8099, bar and baz would be mapped to static columns internally. However, being WITH COMPACT STORAGE, the table will only expose bar and baz columns. Accessing any dynamic columns (any column not named bar and baz) right now requires going through Thrift.
This is blocking Thrift -> CQL migration for users who have mixed dynamic/static column families. That said, it shouldn't be hard to allow users to drop the compact flag to expose the table as it is internally now, and be able to access all columns.
Attachments
Issue Links
- depends upon
-
CASSANDRA-12373 3.0 breaks CQL compatibility with super columns families
- Resolved
-
CASSANDRA-8103 Secondary Indices for Static Columns
- Resolved
- is duplicated by
-
CASSANDRA-10398 Allow dropping COMPACT STORAGE flag
- Resolved
- is related to
-
CASSANDRA-14007 cqlshlib tests fail due to compact table
- Resolved
- is required by
-
CASSANDRA-11115 Thrift removal
- Resolved
- links to