Skip to main content

Special Statements

This page covers KQL syntax elements that don't fit neatly into a single function category — including inline data tables, duration literals, dynamic values, verbatim strings, pipe composition, datetime/timespan arithmetic, and a few preprocessing transformations the compiler applies automatically before parsing.

Legend: ✅ Supported · ⚠️ Approximated · ❌ Not Supported · 🔄 Rewritten

FeatureSQLiteMySQLClickHousePostgreSQLDuckDBNotes
datatable✅✅✅✅✅CREATE TEMP TABLE + INSERT INTO
Bare duration literals (e.g. 1d)⚠️✅✅✅✅SQLite has no INTERVAL type — rendered as a seconds number; others use INTERVAL
dynamic({}) / dynamic([])✅✅✅✅✅Rendered as JSON string constant; nested containers rewritten before parsing
Verbatim strings @"..."✅✅✅✅✅Unescaped string literals
Pipe chaining (|)✅✅✅✅✅Each pipe stage wraps as subquery when needed
datetime(bare-date) preprocessing✅✅✅✅✅Auto-quoted before parsing
between(datetime() .. datetime()) preprocessing✅✅✅✅✅Rewritten to >= / <= before parsing
Datetime/timespan arithmetic (+ - * / %)✅✅✅✅✅Timespan operands lowered to a seconds number; SQLite uses datetime() modifiers, others use INTERVAL

Dialect Summary​

The table below gives a high-level view of which SQL capabilities are available per dialect, which shapes what KQL features are achievable.

CapabilitySQLiteMySQLClickHousePostgreSQLDuckDB
ILIKE operator❌❌✅✅✅
RIGHT JOIN❌✅✅✅✅
FULL OUTER JOIN❌❌✅✅✅
Native regex❌✅✅✅✅
extractAll / regex capture groups❌❌✅❌✅
Temp tables✅✅✅✅✅
CTEs (WITH)✅✅✅✅✅
Array unnesting❌❌✅✅✅
String concat style||concat()concat()||concat()
Date arithmetic stylemodifier stringDATE_ADDsubtract* functionsINTERVAL expressionINTERVAL expression
Regex match stylenoneREGEXP_LIKEmatch()~ tilde operatorregexp_matches()