Reference

Error Handling and Supported Constraints

The tests cover several user-facing validation behaviors:

Guide

The tests cover several user-facing validation behaviors:

SQL Shape

Rejected examples:

sql
SELECT value FROM input
SELECT value INTO output FROM input, other
SELECT *, value INTO output FROM input
SELECT field1..field2 INTO output FROM input
SELECT field1.field2 AS a.b INTO output FROM input
SELECT value AS [a..b] INTO output FROM input

Window Compute

Rejected examples:

sql
SELECT * INTO output
FROM input
WINDOW BY TumblingWindow(Duration(minute, 1))
COMPUTE avg = AVG(value)
WHERE value > avg

Reason: `WINDOW BY` requires `TIMESTAMP BY`.

sql
SELECT * INTO output
FROM input TIMESTAMP BY ts
COMPUTE avg = AVG(value)
WHERE value > avg

Reason: `COMPUTE` requires `WINDOW BY`.

sql
SELECT * INTO output
FROM input TIMESTAMP BY ts
WINDOW BY TumblingWindow(Duration(minute, 1))
WHERE value > 10

Reason: `WINDOW BY` requires `COMPUTE`.

sql
SELECT * INTO output
FROM input TIMESTAMP BY ts
WINDOW BY TumblingWindow(Duration(minute, 1))
COMPUTE avgPlusValue = AVG(value) + value
WHERE value > avgPlusValue

Reason: a `COMPUTE` expression must be an aggregate or derived from aggregates.

MATCH_RECOGNIZE

Rejected examples include:

  • Missing `LIMIT Duration(...)`.
  • Missing `AFTER MATCH SKIP TO NEXT ROW`.
  • `ALL ROWS PER MATCH`.
  • `AFTER MATCH SKIP PAST LAST ROW`.
  • Missing `DEFINE` for a pattern variable.

CLI

Rejected examples include:

bash
chronusql --follow query.sql

Reason: follow and tail modes require file inputs.

bash
chronusql --query "SELECT value FROM input" --input first=- --input second=-

Reason: only one input may use stdin.

bash
chronusql --query "SELECT value FROM input" --output first=- --output second=-

Reason: only one output may use stdout.