Back to Yugabyte Db

Cassandra feature support

docs/content/v2024.1/explore/ycql-language/cassandra-feature-support.md

2026.1.0.0-b2912.0 KB
Original Source

Yugabyte Cloud Query Language (YCQL) has its roots in the Cassandra Query Language (CQL). The following tables highlight the important differences in feature support between YCQL and Cassandra 3.4.2.

Data types

Primitive Types

CategoryTypes
{{<icon/yes>}}IntegersBIGINT, COUNTER, INT, INTEGER, SMALLINT, TINYINT, VARINT
{{<icon/yes>}}NumbersDECIMAL, DOUBLE, FLOAT
{{<icon/yes>}}Binary dataBLOB
{{<icon/yes>}}BooleanBOOLEAN
{{<icon/yes>}}Date/TimeDATE, TIME, TIMESTAMP
{{<icon/yes>}}CollectionsFROZEN, LIST, MAP, SET
{{<icon/yes>}}IP AddressesINET
{{<icon/yes>}}JSONJSONB
{{<icon/yes>}}StringTEXT, VARCHAR
{{<icon/yes>}}UUIDTIMEUUID, UUID
{{<icon/no>}}TUPLE
{.sno-1}

User defined data types

OperationDetails
{{<icon/yes>}}Create new typeCREATE TYPE
{{<icon/yes>}}Delete typesDROP TYPE
{{<icon/no>}}Alter types
{.sno-1}

DDL

Keyspaces

OperationDetails
{{<icon/yes>}}Creating keyspaceCREATE KEYSPACE
{{<icon/yes>}}Check before creating keyspaceCREATE KEYSPACE IF NOT EXISTS
{{<icon/partial>}}Modifying keyspaceALTER KEYSPACE - No Op
{{<icon/no>}}Check before altering keyspaceALTER KEYSPACE IF EXISTS

{.sno-1}

Tables

OperationDetails
{{<icon/yes>}}Adding columnsADD COLUMN
{{<icon/yes>}}Altering tablesALTER TABLE
{{<icon/yes>}}Removing columnsDROP COLUMN
{{<icon/yes>}}Rename column's nameRENAME COLUMN
{{<icon/no>}}Check before altering tablesALTER TABLE IF EXISTS
{.sno-1}

Indexes

OperationDetails
{{<icon/yes>}}Adding indexesCREATE INDEX
{{<icon/yes>}}Removing indexesDROP INDEX
{{<icon/yes>}}Partial indexesPartial indexes
{{<icon/yes>}}Covering indexesCovering indexes
{{<icon/yes>}}Unique indexesUnique indexes
{{<icon/no>}}Adding indexes on CollectionCannot create index on map/list/set/full jsonb/udt and the keys,values,entries of a collection
{.sno-1}

DML

Select

OperationDetails
{{<icon/yes>}}Select columnsSELECT * FROM ...
{{<icon/yes>}}Conditional select with [NOT] IN clauseSELECT ... WHERE key IN ...
{{<icon/yes>}}Conditional select with IF clauseSELECT ... IF ...
{{<icon/yes>}}Select using CONTAINS [KEY]SELECT * FROM ...
{{<icon/no>}}SELECT JSONJSONB is supported as a native type
{{<icon/no>}}Select with PER PARTITION LIMIT
{{<icon/no>}}Grouping results with GROUP BY
{.sno-1}

Update

OperationDetails
{{<icon/partial>}}Update columnsUPDATE - Only single row updates
{{<icon/partial>}}Conditional update with [NOT] IN clauseOnly single row updates
{{<icon/yes>}}Conditional update with IF clauseUPDATE ... IF
{{<icon/yes>}}Update with USING clauseUPDATE ... USING
{{<icon/no>}}Conditional Update using CONTAINS [KEY]UPDATE ... WHERE <col> CONTAINS ...
{.sno-1}

Delete

OperationDetails
{{<icon/partial>}}Delete rowsDELETE - Only single row deletes
{{<icon/yes>}}Conditional delete with IF clauseDELETE ... IF
{{<icon/yes>}}Delete with USING clauseDELETE ... USING
{{<icon/partial>}}Conditional delete with [NOT] IN clauseOnly single row deletes
{{<icon/no>}}Conditional delete using CONTAINS [KEY]DELETE ... WHERE <col> CONTAINS ...
{.sno-1}

Insert

OperationDetails
{{<icon/yes>}}Adding columnsINSERT ... INTO ...
{{<icon/no>}}INSERT JSONJSONB is supported as a native type
{.sno-1}

Transactions

FeatureDetails
{{<icon/yes>}}Begin a transactionBEGIN TRANSACTION
{{<icon/yes>}}End a transactionEND TRANSACTION
{{<icon/yes>}}SQL style transaction startSTART TRANSACTION
{{<icon/yes>}}SQL style transaction commitCOMMIT
{.sno-1}

Security

ComponentDetails
{{<icon/yes>}}RolesManage users and roles
{{<icon/yes>}}PermissionsGrant privileges
{{<icon/no>}}UsersLegacy Cassandra feature (CREATE, DROP, ALTER, LIST)
{{<icon/no>}}LIST ROLESBut can be done using query
{{<icon/no>}}LIST PERMISSIONSBut can be done using query
{.sno-1}

Other Features

ComponentDetails
{{<icon/yes>}}AggregatesAVG, COUNT, MAX, MIN, SUM
{{<icon/yes>}}Built-in FunctionsNow, DateOf, CurrentTime, ToTime, UUID ...
{{<icon/yes>}}OperatorsBinary, Unary, Null operators
{{<icon/partial>}}BatchOnly programmatically via BatchStatement
{{<icon/no>}}Materialized Views
{{<icon/no>}}Triggers
{{<icon/no>}}User Defined Aggregates(UDA)
{{<icon/no>}}User-defined functions(UDF)
{.sno-1}

Learn more