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 (SELECTonly)
CREATE TABLE,ALTER TABLE,DROP TABLECREATE VIEW,CREATE SCHEMA,CREATE INDEX
BEGIN,COMMIT,ROLLBACK
ROW_NUMBER(),RANK(),DENSE_RANK()SUM() OVER (...),AVG() OVER (...), and other analytic aggregates
- Parenthesized set operations (e.g.,
(SELECT ... UNION SELECT ...) UNION SELECT ...) ORDER BYafter set operations must reference columns by position (e.g.,ORDER BY 1) or alias — not by base-table column name
WITH RECURSIVE(recursive CTEs)
- Scalar subquery in the
SELECTlist (e.g.,SELECT (SELECT MAX(x) FROM t), id FROM ...) - Subquery in
HAVINGorORDER BY
ORDER BY ... DESCNULLS FIRST/NULLS LAST
GROUP BYwith expressions (e.g.,GROUP BY YEAR(created_at))- Positional
GROUP BYordinals (e.g.,GROUP BY 1, 2) GROUPING SETS,ROLLUP,CUBE
CAST/CONVERT
CURRENT_DATE,CURRENT_TIMESTAMP,NOW()EXTRACT,DATE_ADD,DATE_DIFF,DATEDIFFDATE,TIME,TIMESTAMPliterals
LATERALtable referencesNATURAL JOINCROSS JOINkeyword syntax (use comma-separated table list instead)
IS DISTINCT FROM/IS NOT DISTINCT FROMANY/ALLquantifiers
- Delimited (double-quoted) identifiers
- 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. LIKE wildcard. Only% (multi-character wildcard) is supported. The _ single-character wildcard is not implemented.
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.
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.