YCQL - Cassandra 3.4 compatibility

Overview

Yugabyte Cloud Query Language (YCQL) has its roots in the Cassandra Query Language (CQL). This page highlights the important differences in feature support between YCQL and Cassandra 3.4.2.

This page does not list all the features supported in YCQL. For all the features and commands supported, see YCQL Reference. For advantages of YCQL over Cassandra, see Comparison with Apache Cassandra.

DDL statements

Table
ALTER TABLE Cannot rename columns used in an index
Cannot Add/Drop multiple columns
ALTER TABLE ... IF [NOT] EXISTS
Keyspace
CREATE KEYSPACE
CREATE KEYSPACE ... IF NOT EXISTS
ALTER KEYSPACE No Op
ALTER KEYSPACE IF EXISTS
Index
CREATE INDEX No support for map/list/set/tuple/full jsonb/udt and
keys/values/entries of a collection
DROP INDEX
Type
CREATE TYPE
ALTER TYPE

DML statements

Select
... [NOT] IN
... IF <expression>
... WHERE CONTAINS In Progress
... WHERE CONTAINS KEY In Progress
... JSON
... GROUP BY
... PER PARTITION LIMIT
Update
UPDATE Only single row updates
... [NOT] IN Only single row updates
... IF <expression>
... USING TTL
... CONTAINS [KEY]
Delete
DELETE Only single row deletes
... [NOT] IN Only single row deletes
... IF <expression>
... USING TTL
... CONTAINS [KEY]
Insert
INSERT
INSERT JSON
Feature
Materialized Views
BATCH Only programattically via BatchStatement

Unsupported datatypes

Type
Tuple

Unsupported commands

Feature
[CREATE | DROP] FUNCTION No support for User Defined Function (UDF)
[CREATE | DROP] AGGREGATE No support for User Defined Aggregates(UDA)
[CREATE | DROP] TRIGGER No support for Triggers
[CREATE | DROP | ALTER | LIST] USER Legacy Cassandra feature
LIST ROLES
LIST PERMISSION

Learn more