# Features

CoordinatorDB provides relational SQL with immediate row changes, transaction controls and checked native value types.

## SQL and constraints

Queries support joins, subqueries, recursive common table expressions, set operations, aggregates with FILTER and DISTINCT, and window frames. Tables support primary and unique keys, CHECK and NOT NULL constraints, generated columns, expression and partial indexes, and triggers.

Use [`EXPLAIN`](https://coordinatordb.com/docs/reference/statements/explain) to inspect a selected query plan or collect measurements from an execution.

## Typed values

Native types cover integers through 256 bits, decimals through 76 digits, dates, fractional timestamps, enums, UUIDs and network addresses. Arrays, named tuples, maps and JSON retain structured values. Aggregate states can be stored and combined explicitly.

The [type reference](https://coordinatordb.com/docs/reference/data-types) documents validation, conversions and examples.

## Data exchange

Registered formats encode query results and decode INSERT input. Native clients can supply local files or stdin; HTTP can attach input bytes; server `file()` reads confined server-side files.

Format names use snake_case. Consult the [format reference](https://coordinatordb.com/docs/reference/formats) for directions, settings and type mappings.

## Server and browser interfaces

The server provides authenticated native TCP and optional HTTP, managed database selection, persistent database settings, system relations and request history. The HTTP Playground provides SQL tabs, table pages, notebooks, dashboards and charts.

The reference describes implemented behavior. Similar names do not imply full compatibility with another database's SQL dialect, native protocol or binary state formats.
