Skip to main content

Limitations

DortDB is built for flexibility and small bundle size, and those choices come with real constraints. Knowing them up front avoids surprises.

Read-only

DortDB is currently a read-only query framework. There are no data-definition or data-modification statements: no CREATE, INSERT, UPDATE, SET, and so on. To change data, mutate the registered sources directly from JavaScript; the next query sees the updated values.

Rule-based optimizer only

The optimizer collects no statistics on registered sources, so cost-based optimization is not feasible. The optimizer is rule-based and, in particular, does not reorder joins, so write joins in a sensible order and add indices on the columns you filter and join on.

Single-threaded

JavaScript is single-threaded, and Web Workers generally cannot share in-memory data without copying it. DortDB therefore runs in a single thread, and query execution is synchronous. (Explicitly sharding sources across Workers is possible in principle but is not built in. Similarly, an async executor is possible but not implemented.)

Partial language coverage

None of the provided languages is implemented in full. Beyond the read-only restriction, some features are simply not implemented yet (for example SQL GROUP BY ROLLUP or window functions), and some are intentionally excluded, notably static typing and schema validation, which conflict with the schema-free design. The per-language boundaries are documented in each language's dialect page: SQL, XQuery, Cypher. Missing functions can usually be supplied as extensions.