---
title: "ClickHouse Compatibility Matrix"
---

# ClickHouse Compatibility Matrix

:::caution[Planned: not in the current release]
ClickHouse protocol support for HeliosDB Full is planned. The current release opens no ClickHouse listener. Reach
the same data over the PostgreSQL listener or `POST /api/v1/query` today. This page
describes the planned interface.
:::

Comprehensive compatibility reference for HeliosDB's ClickHouse protocol implementation.

## Planned Coverage (design target: 85%)

| Category | Design coverage | Availability |
|----------|----------|--------|
| Native Protocol | 100% | Planned |
| HTTP Protocol | 100% | Planned |
| SQL Language | 90% | Planned |
| Table Engines | 80% | Planned (core engines) |
| Data Types | 95% | Planned (standard types) |

## Protocol Support

### Native Protocol (TCP)

| Feature | Result | Notes |
|---------|--------|-------|
| Connection | Supported | Port 9000 |
| Authentication | Supported | Password-based |
| Compression | Supported | LZ4, ZSTD, LZ4HC |
| SSL/TLS | Supported | Encrypted connections |
| Query Execution | Supported | Full SQL |
| Batch Insert | Supported | High throughput |

### HTTP Protocol

| Feature | Result | Notes |
|---------|--------|-------|
| GET Queries | Supported | Read operations |
| POST Queries | Supported | Write operations |
| Streaming | Supported | Large result sets |
| Compression | Supported | gzip, deflate |
| JSON Output | Supported | Multiple formats |

## Table Engines

### MergeTree Family

| Engine | Result | Notes |
|--------|--------|-------|
| MergeTree | Supported | Primary engine |
| ReplacingMergeTree | Supported | Upsert behavior |
| SummingMergeTree | Supported | Auto-summing |
| AggregatingMergeTree | Supported | Pre-aggregation |
| CollapsingMergeTree | Supported | Collapsing rows |
| VersionedCollapsingMergeTree | Supported | Versioned collapse |
| GraphiteMergeTree | Partial | Basic support |

### Integration Engines

| Engine | Result | Notes |
|--------|--------|-------|
| Distributed | Supported | Multi-node queries |
| Kafka | Supported | Stream ingestion |
| S3 | Supported | Cloud storage |
| HDFS | Partial | Basic support |
| PostgreSQL | Supported | External tables |
| MySQL | Supported | External tables |

### Special Engines

| Engine | Result | Notes |
|--------|--------|-------|
| Memory | Supported | In-memory tables |
| Log | Supported | Simple logging |
| Null | Supported | Discard data |
| View | Supported | Standard views |
| MaterializedView | Supported | Auto-refresh |
| Dictionary | Supported | Fast lookups |

## Data Types

### Numeric Types

| Type | Result | Notes |
|------|--------|-------|
| UInt8/16/32/64 | Supported | Unsigned integers |
| Int8/16/32/64 | Supported | Signed integers |
| Float32/64 | Supported | IEEE 754 |
| Decimal(P, S) | Supported | Fixed precision |
| UInt128/256 | Supported | Large integers |
| Int128/256 | Supported | Large signed |

### String Types

| Type | Result | Notes |
|------|--------|-------|
| String | Supported | Variable length |
| FixedString(N) | Supported | Fixed length |
| UUID | Supported | UUID type |
| IPv4 | Supported | IP addresses |
| IPv6 | Supported | IPv6 addresses |

### Date/Time Types

| Type | Result | Notes |
|------|--------|-------|
| Date | Supported | Calendar date |
| Date32 | Supported | Extended range |
| DateTime | Supported | Timestamp |
| DateTime64 | Supported | With precision |

### Composite Types

| Type | Result | Notes |
|------|--------|-------|
| Array(T) | Supported | Dynamic arrays |
| Tuple(T1, T2,...) | Supported | Named tuples |
| Map(K, V) | Supported | Key-value maps |
| Nested | Supported | Nested columns |
| Enum8/16 | Supported | Enumerated types |
| LowCardinality | Supported | Dictionary encoding |
| Nullable(T) | Supported | NULL support |

## SQL Features

### SELECT Clauses

| Clause | Result | Notes |
|--------|--------|-------|
| SELECT | Supported | Column selection |
| FROM | Supported | Table references |
| WHERE | Supported | Row filtering |
| PREWHERE | Supported | Early filtering |
| GROUP BY | Supported | Aggregation |
| HAVING | Supported | Group filtering |
| ORDER BY | Supported | Sorting |
| LIMIT | Supported | Row limiting |
| OFFSET | Supported | Row skipping |
| SAMPLE | Supported | Data sampling |
| FINAL | Supported | Deduplication |
| WITH | Supported | CTEs |

### JOIN Operations

| Type | Result | Notes |
|------|--------|-------|
| INNER JOIN | Supported | |
| LEFT JOIN | Supported | |
| RIGHT JOIN | Supported | |
| FULL JOIN | Supported | |
| CROSS JOIN | Supported | |
| ASOF JOIN | Supported | Time-series joins |
| GLOBAL JOIN | Supported | Distributed joins |

### Window Functions

| Function | Result | Notes |
|----------|--------|-------|
| ROW_NUMBER | Supported | |
| RANK | Supported | |
| DENSE_RANK | Supported | |
| LEAD | Supported | |
| LAG | Supported | |
| FIRST_VALUE | Supported | |
| LAST_VALUE | Supported | |
| NTH_VALUE | Supported | |

## Aggregation Functions

### Basic Aggregations

| Function | Result | Notes |
|----------|--------|-------|
| count() | Supported | Row count |
| sum() | Supported | Sum values |
| avg() | Supported | Average |
| min() | Supported | Minimum |
| max() | Supported | Maximum |
| any() | Supported | Any value |

### Statistical Functions

| Function | Result | Notes |
|----------|--------|-------|
| stddevPop() | Supported | Std deviation |
| varPop() | Supported | Variance |
| covarPop() | Supported | Covariance |
| corr() | Supported | Correlation |

### Quantile Functions

| Function | Result | Notes |
|----------|--------|-------|
| quantile() | Supported | Approximate |
| quantileExact() | Supported | Exact |
| quantileTiming() | Supported | Timing data |
| quantiles() | Supported | Multiple |

### Unique Functions

| Function | Result | Notes |
|----------|--------|-------|
| uniq() | Supported | Approximate |
| uniqExact() | Supported | Exact |
| uniqCombined() | Supported | Combined |
| uniqHLL12() | Supported | HyperLogLog |

### Top-K Functions

| Function | Result | Notes |
|----------|--------|-------|
| topK() | Supported | Top K values |
| topKWeighted() | Supported | Weighted |

### State Functions

| Function | Result | Notes |
|----------|--------|-------|
| *State() | Supported | Aggregate state |
| *Merge() | Supported | Merge states |
| *If() | Supported | Conditional |

## Array Functions

| Function | Result | Notes |
|----------|--------|-------|
| arrayJoin | Supported | Flatten arrays |
| arrayMap | Supported | Transform |
| arrayFilter | Supported | Filter |
| arrayReduce | Supported | Reduce |
| arraySort | Supported | Sort |
| arrayReverse | Supported | Reverse |
| arraySlice | Supported | Slice |

## String Functions

| Function | Result | Notes |
|----------|--------|-------|
| concat | Supported | Concatenation |
| substring | Supported | Substring |
| length | Supported | Length |
| lower/upper | Supported | Case conversion |
| trim | Supported | Trim whitespace |
| splitByChar | Supported | Split string |
| match | Supported | Regex match |
| extract | Supported | Regex extract |

## Date/Time Functions

| Function | Result | Notes |
|----------|--------|-------|
| toDate | Supported | Convert to date |
| toDateTime | Supported | Convert to datetime |
| toStartOf* | Supported | Period start |
| toYear/Month/Day | Supported | Extract parts |
| date_add/sub | Supported | Date arithmetic |
| dateDiff | Supported | Date difference |
| now() | Supported | Current time |

## External Data Integration

### S3 Functions

| Feature | Result | Notes |
|---------|--------|-------|
| s3() | Supported | Read from S3 |
| s3Cluster() | Supported | Distributed read |
| INSERT INTO s3() | Supported | Write to S3 |

### File Formats

| Format | Result | Notes |
|--------|--------|-------|
| CSV | Supported | Text format |
| TSV | Supported | Tab-separated |
| JSON | Supported | JSON format |
| Parquet | Supported | Columnar format |
| ORC | Supported | Columnar format |
| Avro | Partial | Basic support |

## Performance Features

| Feature | Result | Notes |
|---------|--------|-------|
| Columnar Storage | Supported | Native |
| Data Compression | Supported | LZ4, ZSTD |
| Vectorized Execution | Supported | SIMD |
| Parallel Query | Supported | Multi-thread |
| Query Pipelining | Supported | Streaming |
| Index Skipping | Supported | Sparse index |

## Known Limitations

### Not Supported

| Feature | Reason |
|---------|--------|
| Replicated Engines | Use HeliosDB replication |
| Embedded ZooKeeper | Different architecture |
| Kafka Exactly-Once | Different guarantees |
| HDFS Full Support | Planned |

### Behavioral Differences

1. **Replication**: Uses HeliosDB replication instead of ClickHouse Keeper
2. **Storage**: Uses HeliosDB storage engine
3. **Mutations**: May have different timing
4. **Settings**: Some advanced settings may differ

---

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