> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamosql.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Limitations

> Current hard limits and unsupported SQL features.

## Not Implemented

These features are not currently supported. Some are planned for future releases.

**Write operations:**

* `INSERT`, `UPDATE`, `DELETE`, `MERGE` — the engine is read-only (`SELECT` only)

**DDL:**

* `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`
* `CREATE VIEW`, `CREATE SCHEMA`, `CREATE INDEX`

**Transactions:**

* `BEGIN`, `COMMIT`, `ROLLBACK`

**Window functions:**

* `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`
* `SUM() OVER (...)`, `AVG() OVER (...)`, and other analytic aggregates

**Set operations:**

* Parenthesized set operations (e.g., `(SELECT ... UNION SELECT ...) UNION SELECT ...`)

**CTEs:**

* `WITH RECURSIVE` (recursive CTEs)

**Sorting:**

* `NULLS FIRST` / `NULLS LAST` — `NULL` values sort before non-nulls ascending and after non-nulls descending; the order cannot be overridden

**Type operations:**

* `CAST` / `CONVERT`

**Date/time:**

* `EXTRACT`, `DATE_ADD`, `DATE_DIFF`, `DATEDIFF`
* `DATE`, `TIME`, `TIMESTAMP` literals
* `NOW()` (use `CURRENT_DATE()` or `CURRENT_TIMESTAMP()` instead — see [Functions](/sql-reference/functions))

**Join syntax:**

* `LATERAL` table references
* `NATURAL JOIN`
* `CROSS JOIN` keyword syntax (use comma-separated table list instead)

**Predicates:**

* `IS DISTINCT FROM` / `IS NOT DISTINCT FROM`
* `ANY` / `ALL` quantifiers

**Identifiers and literals:**

* Scientific notation literals (e.g., `1e3`, `2.5e-4`)
* Hex string literals (`X'0A'`)
* Bit string literals (`B'0101'`)

***

## Behavioral Notes

**Pagination is stateless.** The engine re-executes the full query on each page request and skips rows using an offset. If DynamoDB data changes between page requests, rows may be skipped or duplicated at page boundaries. This is appropriate for analytics and reporting, but not for transactional reads where consistency across pages is required. See [Pagination](/guides/pagination).

**String escaping.** Doubled single quote (`''`) is the supported escape for a literal single quote inside a string literal. Other escape sequences (e.g., backslash-based) may not be handled correctly.

**Quoted identifiers.** ANSI double quotes delimit identifiers. Use double quotes for table names, column names, aliases, or CTE names that include punctuation, spaces, reserved words, leading digits, or exact DynamoDB casing. Single quotes remain string literals.

**Keyword case sensitivity.** SQL keywords (`SELECT`, `FROM`, `WHERE`, etc.) are treated case-insensitively in most contexts. Full case-insensitive coverage of all keywords is partial — if you encounter a parse error on a valid keyword, try uppercasing it.
