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 ...)
WITH RECURSIVE(recursive CTEs)
NULLS FIRST/NULLS LAST—NULLvalues sort before non-nulls ascending and after non-nulls descending; the order cannot be overridden
CAST/CONVERT
EXTRACT,DATE_ADD,DATE_DIFF,DATEDIFFDATE,TIME,TIMESTAMPliteralsNOW()(useCURRENT_DATE()orCURRENT_TIMESTAMP()instead — see Functions)
LATERALtable referencesNATURAL JOINCROSS JOINkeyword syntax (use comma-separated table list instead)
IS DISTINCT FROM/IS NOT DISTINCT FROMANY/ALLquantifiers
- 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. 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.