Skip to content

Language Reference

This is FlashQL's SQL implemenation reference.

TODO

This reference is pending restructure and update.

1. Statements

Clause / ConstructDialectSupportNotes
SELECTPG / MySQLFull projection, aliasing, expressions
INSERTPG / MySQLMulti-row, RETURNING supported
UPDATEPG / MySQLSET with expressions
DELETEPG / MySQLConditional deletes
UPSERT (INSERT ... ON CONFLICT)PGNative unified syntax
MERGEANSINot planned
WITH (CTE)PGRecursive unsupported
UNION / INTERSECT / EXCEPTANSIStandard behavior
CREATE TABLEANSIBasic schema only
ALTER TABLEANSIAdd/drop columns
DROP TABLEANSICascade optional
CREATE INDEXPGInternally optimized only
CREATE VIEWANSIPlanned
TRUNCATEPG / MySQLNot needed for in-memory engine
BEGIN / COMMIT / ROLLBACKANSITransaction semantics implicit
SHOW / DESCRIBEMySQL🔶Parsed as metadata query only

2. Expressions

ConstructDialectSupportNotes
Column referencesANSIStandard, dotted paths supported
Literals (numeric, string, boolean)ANSI
NULL, IS NULL, IS NOT NULLANSI
Subqueries (scalar, row, table)ANSINested query support
CASE, COALESCE, NULLIFANSIConditional expressions
EXISTS, IN, ANY, ALLANSIStandard semantics
JSON literals {}, []FlashQLNative JSON support
DeepRefs ~>, <~LinkedQLReferential traversal
Time/version tags @FlashQLTemporal version addressing
Window functionsPGPlanned
User-defined expressionsFlashQLFuture extension

3. Operators

OperatorDialectSupportNotes
+, -, *, /, %ANSIArithmetic
=, <>, !=, <, >, <=, >=ANSIComparisons
AND, OR, NOTANSILogical
`, CONCAT`PG / MySQLString concatenation
LIKE, ILIKEANSI / PGPattern matching
IN, NOT INANSISet membership
BETWEEN, NOT BETWEENANSIRange
~>, <~LinkedQLDeep reference traversal
@> / <@PG JSON🔶Partial JSON containment
->, ->>PG JSON🔶Alias of native JSON access
#>PG JSONNot yet implemented
IS DISTINCT FROMPGPlanned
`` (logical concat)MySQLNot applicable

4. Functions

FunctionDialectSupportNotes
COUNT, SUM, AVG, MIN, MAXANSIAggregates
LOWER, UPPER, LENGTH, TRIMANSIString functions
SUBSTRING, CONCAT, REPLACEANSI
ABS, ROUND, CEIL, FLOORANSINumeric
NOW, CURRENT_DATE, INTERVALANSI / PGDate/time
COALESCE, NULLIF, CASEANSIConditional
JSON_EXTRACT, JSON_OBJECT, JSON_ARRAYFlashQLJSON built-ins
ARRAY_AGG, STRING_AGGPGAggregates
GREATEST, LEASTPG / MySQL
RANDOM, UUIDPGRandom utilities
ROW_NUMBER, RANK, DENSE_RANKPGWindow functions planned
Custom functionsFlashQLFuture extension API

5. Dialect Compatibility

DialectGrammarRuntimeNotes
PostgreSQLCanonical dialect
MySQL🔶Normalized differences (e.g., LIMIT vs. TOP)
MariaDB🔶Same as MySQL
SQLite🔶Parsed via FlashQL runtime grammar
FlashQL NativeAdds JSON literals, DeepRefs, and temporal tags

MIT Licensed