---
title: "Cassandra CQL Compatibility Matrix"
---

# Cassandra CQL Compatibility Matrix

:::caution[What the listener serves today]
HeliosDB Full opens listeners for PostgreSQL, MySQL, Oracle, MongoDB,
Cassandra, Redis and SQL Server plus an HTTP gateway; MongoDB, Cassandra and SQL
Server clients can connect and authenticate, and reading and writing HeliosDB tables
through them is planned. Standard Cassandra drivers, including
the DataStax drivers and cqlsh, cannot connect yet; driver compatibility for the CQL
listener is planned. The features on this page describe the planned surface.
:::

Comprehensive compatibility reference for HeliosDB's Cassandra CQL protocol implementation.

## Overall Compatibility

| Category | Design coverage | Availability |
|----------|----------|--------|
| Native Protocol v4/v5 | 100% | Partial: handshake and authentication; standard drivers cannot connect yet |
| CQL Language | 100% | Planned |
| Data Types | 100% | Planned |
| Authentication | 100% | Available |

## Protocol Support

### Frame Types

| Frame | Direction | Result | Notes |
|-------|-----------|--------|-------|
| STARTUP | C->S | Supported | Connection init |
| OPTIONS | C->S | Supported | Query capabilities |
| QUERY | C->S | Supported | Execute CQL |
| PREPARE | C->S | Supported | Prepare statement |
| EXECUTE | C->S | Supported | Run prepared |
| BATCH | C->S | Supported | Batch operations |
| REGISTER | C->S | Supported | Event subscription |
| AUTH_RESPONSE | C->S | Supported | Auth response |
| READY | S->C | Supported | Connection ready |
| AUTHENTICATE | S->C | Supported | Auth challenge |
| SUPPORTED | S->C | Supported | Capabilities |
| RESULT | S->C | Supported | Query result |
| ERROR | S->C | Supported | Error response |
| EVENT | S->C | Supported | Server event |
| AUTH_CHALLENGE | S->C | Supported | SASL challenge |
| AUTH_SUCCESS | S->C | Supported | Auth complete |

### Protocol Features

| Feature | Result | Notes |
|---------|--------|-------|
| Compression (LZ4) | Supported | Recommended |
| Compression (Snappy) | Supported | Alternative |
| Streaming | Supported | Paged results |
| Tracing | Supported | Query tracing |
| Custom payloads | Supported | v4+ |
| Warnings | Supported | Query warnings |

## Data Types

### Primitive Types

| Type | CQL | Result | HeliosDB Mapping |
|------|-----|--------|------------------|
| ascii | ASCII | Supported | TEXT |
| bigint | BIGINT | Supported | BIGINT |
| blob | BLOB | Supported | BYTEA |
| boolean | BOOLEAN | Supported | BOOLEAN |
| counter | COUNTER | Supported | BIGINT + trigger |
| date | DATE | Supported | DATE |
| decimal | DECIMAL | Supported | DECIMAL |
| double | DOUBLE | Supported | DOUBLE PRECISION |
| duration | DURATION | Supported | INTERVAL |
| float | FLOAT | Supported | REAL |
| inet | INET | Supported | INET |
| int | INT | Supported | INTEGER |
| smallint | SMALLINT | Supported | SMALLINT |
| text | TEXT | Supported | TEXT |
| time | TIME | Supported | TIME |
| timestamp | TIMESTAMP | Supported | TIMESTAMPTZ |
| timeuuid | TIMEUUID | Supported | UUID |
| tinyint | TINYINT | Supported | SMALLINT |
| uuid | UUID | Supported | UUID |
| varchar | VARCHAR | Supported | TEXT |
| varint | VARINT | Supported | NUMERIC |

### Collection Types

| Type | CQL | Result | HeliosDB Mapping |
|------|-----|--------|------------------|
| list | LIST<T> | Supported | JSONB array |
| set | SET<T> | Supported | JSONB array |
| map | MAP<K,V> | Supported | JSONB object |
| tuple | TUPLE<...> | Supported | JSONB array |
| frozen | FROZEN<T> | Supported | JSONB |

### User-Defined Types

| Feature | Result | Notes |
|---------|--------|-------|
| CREATE TYPE | Supported | Stored as JSONB |
| ALTER TYPE | Supported | |
| DROP TYPE | Supported | |
| Nested UDTs | Supported | Full nesting |

## DDL Statements

### Keyspace Management

| Statement | Result | Notes |
|-----------|--------|-------|
| CREATE KEYSPACE | Supported | With replication options |
| ALTER KEYSPACE | Supported | |
| DROP KEYSPACE | Supported | |
| USE | Supported | Switch keyspace |

### Replication Strategies

| Strategy | Result | Notes |
|----------|--------|-------|
| SimpleStrategy | Supported | Single DC |
| NetworkTopologyStrategy | Supported | Multi-DC |

### Table Management

| Statement | Result | Notes |
|-----------|--------|-------|
| CREATE TABLE | Supported | All options |
| ALTER TABLE | Supported | Add/drop columns |
| DROP TABLE | Supported | |
| TRUNCATE | Supported | |

### Table Options

| Option | Result | Notes |
|--------|--------|-------|
| bloom_filter_fp_chance | Mapped | Index hints |
| caching | Mapped | Query cache |
| comment | Supported | |
| compaction | Mapped | Compaction strategy |
| compression | Mapped | Storage compression |
| default_time_to_live | Supported | Row TTL |
| gc_grace_seconds | Mapped | Tombstone cleanup |
| memtable_flush_period_in_ms | Mapped | Flush interval |
| speculative_retry | Ignored | N/A |

### Index Management

| Statement | Result | Notes |
|-----------|--------|-------|
| CREATE INDEX | Supported | B-tree index |
| DROP INDEX | Supported | |
| CREATE CUSTOM INDEX | Partial | SASI indexes |

### Materialized Views

| Statement | Result | Notes |
|-----------|--------|-------|
| CREATE MATERIALIZED VIEW | Supported | Auto-maintained |
| DROP MATERIALIZED VIEW | Supported | |
| ALTER MATERIALIZED VIEW | Supported | |

## DML Statements

### SELECT

| Feature | Result | Notes |
|---------|--------|-------|
| Basic SELECT | Supported | |
| WHERE clause | Supported | Primary key required |
| ORDER BY | Supported | Clustering order |
| LIMIT | Supported | |
| ALLOW FILTERING | Supported | Full table scan |
| IN clause | Supported | Partition keys |
| Token function | Supported | Range queries |
| TTL function | Supported | Read TTL |
| WRITETIME function | Supported | Read write time |
| JSON | Supported | JSON output |

### INSERT

| Feature | Result | Notes |
|---------|--------|-------|
| Basic INSERT | Supported | |
| IF NOT EXISTS | Supported | LWT |
| USING TTL | Supported | Row TTL |
| USING TIMESTAMP | Supported | Write time |
| JSON | Supported | JSON input |

### UPDATE

| Feature | Result | Notes |
|---------|--------|-------|
| Basic UPDATE | Supported | |
| IF EXISTS | Supported | LWT |
| IF conditions | Supported | LWT |
| Collection updates | Supported | List/Set/Map ops |
| Counter updates | Supported | Increment |
| USING TTL | Supported | |
| USING TIMESTAMP | Supported | |

### DELETE

| Feature | Result | Notes |
|---------|--------|-------|
| Basic DELETE | Supported | |
| Column DELETE | Supported | Set to null |
| IF EXISTS | Supported | LWT |
| IF conditions | Supported | LWT |
| USING TIMESTAMP | Supported | |

### BATCH

| Feature | Result | Notes |
|---------|--------|-------|
| LOGGED BATCH | Supported | Atomic |
| UNLOGGED BATCH | Supported | Non-atomic |
| COUNTER BATCH | Supported | Counter updates |
| USING TIMESTAMP | Supported | |

## Functions

### Aggregate Functions

| Function | Result | Notes |
|----------|--------|-------|
| COUNT | Supported | |
| SUM | Supported | |
| AVG | Supported | |
| MIN | Supported | |
| MAX | Supported | |

### Scalar Functions

| Function | Result | Notes |
|----------|--------|-------|
| token | Supported | Partition token |
| uuid | Supported | Random UUID |
| now | Supported | Current time |
| minTimeuuid | Supported | Min TIMEUUID |
| maxTimeuuid | Supported | Max TIMEUUID |
| dateOf | Supported | Extract date |
| unixTimestampOf | Supported | Unix timestamp |
| toDate | Supported | Convert to date |
| toTimestamp | Supported | Convert to timestamp |
| toUnixTimestamp | Supported | Convert to Unix |
| writetime | Supported | Get write time |
| ttl | Supported | Get TTL |
| blobAsX/XAsBlob | Supported | Type conversions |
| castAsX | Supported | Type casts |

### User-Defined Functions

| Feature | Result | Notes |
|---------|--------|-------|
| CREATE FUNCTION | Supported | SQL functions |
| DROP FUNCTION | Supported | |
| CREATE AGGREGATE | Supported | Custom aggregates |
| DROP AGGREGATE | Supported | |

## Lightweight Transactions (LWT)

| Feature | Result | Notes |
|---------|--------|-------|
| IF NOT EXISTS | Supported | Insert condition |
| IF EXISTS | Supported | Update/Delete condition |
| IF column = value | Supported | Conditional update |
| IF column IN (...) | Supported | Multiple values |
| IF column != value | Supported | Inequality |

## Authentication

| Authenticator | Result | Notes |
|---------------|--------|-------|
| AllowAllAuthenticator | Supported | No auth |
| PasswordAuthenticator | Supported | Username/password |
| LDAP | Supported | External auth |

## Authorization

| Permission | Result | Notes |
|------------|--------|-------|
| SELECT | Supported | Read |
| MODIFY | Supported | Write |
| CREATE | Supported | DDL |
| ALTER | Supported | DDL |
| DROP | Supported | DDL |
| AUTHORIZE | Supported | Grant/Revoke |
| DESCRIBE | Supported | Schema access |

## Consistency Levels

| Level | Result | Behavior |
|-------|--------|----------|
| ANY | Supported | Write only |
| ONE | Supported | Single node |
| TWO | Supported | Two nodes |
| THREE | Supported | Three nodes |
| QUORUM | Supported | Majority |
| ALL | Supported | All replicas |
| LOCAL_QUORUM | Supported | Local DC quorum |
| EACH_QUORUM | Supported | Quorum per DC |
| LOCAL_ONE | Supported | Local node |
| SERIAL | Supported | LWT read |
| LOCAL_SERIAL | Supported | Local LWT read |

## Known Limitations

### Not Supported

| Feature | Reason |
|---------|--------|
| CDC | Use HeliosDB CDC |
| Repair | Automatic with replication |
| Nodetool | HeliosDB admin tools |
| SSTable operations | Internal storage |
| JMX metrics | Use HeliosDB metrics |

### Behavioral Differences

1. **Storage**: Wide-column mapped to relational
2. **Tombstones**: Handled by MVCC
3. **Compaction**: Uses HeliosDB compaction
4. **Hints**: Different mechanism

---

**Related**: [README.md](https://www.heliosdb.com/docs/full/reference/protocols/cassandra/readme/) | [CONFIGURATION.md](https://www.heliosdb.com/docs/full/reference/protocols/cassandra/configuration/) | [EXAMPLES.md](https://www.heliosdb.com/docs/full/reference/protocols/cassandra/examples/)
