Skip to Content

This page summarizes current product limits. Linked workflow pages contain the exact syntax and examples.

Client

  • The public spiral CLI currently exposes sql, flight, and app.
  • The direct spiral-sql binary is available for crate-local SQL client development.
  • Tables are registered per REPL session.
  • There is no persistent local catalog yet.
  • .open registers Vortex files only; built-in table functions can also read local Vortex, Arrow IPC, and Parquet files.

SQL

  • The binder supports at most one FROM relation.
  • Joins, CTEs, derived tables, set operations, DISTINCT, QUALIFY, and window functions are not yet bound.
  • GROUP BY and ORDER BY accept scalar expressions, but GROUP BY ALL is not supported.
  • ORDER BY without LIMIT only supports ascending NULLS FIRST ordering.
  • Function call DISTINCT, FILTER, call-level ORDER BY, OVER, and parameters are not supported.
  • Function calls and table-function calls can use named arguments, subject to the registered function’s parameter names.
  • LIKE and ILIKE are supported; subquery expressions, tuples, arrays, and other pattern forms are represented but not bound.

Data definition and loading

  • CREATE TABLE name (...) creates in-memory REPL tables.
  • CREATE VIEW name AS query creates a session catalog entry with a bound logical plan.
  • CREATE TABLE name AS query materializes a query result into a session-local in-memory table.
  • INSERT accepts literal VALUES only.
  • INSERT ... SELECT, constraints, defaults, primary keys, generated columns, and external table options are not supported for in-memory tables.
  • In-memory TEXT columns do not currently accept NULL values.
  • The interactive .open command does not expand shell globs.
  • spql.vortex.read, spql.arrow.read_ipc, and spql.parquet.read accept one literal local path. Arrow IPC currently materializes file batches into a Values plan; Parquet reads use a scan source with projection, filter, and limit pushdown.
  • COPY TO supports local file targets and registered formats. Vortex output is built in; Arrow IPC output is registered by the default CLI plugin; Parquet output is not implemented.

Planned surfaces

  • Extension packages for modality-specific table functions beyond the current Blob/JPEG/EXIF primitives.
  • Rich batch and artifact delivery.
  • Additional client commands beyond sql, flight, and app.

Planned surfaces should remain marked as Experimental: Contact Us until they are implemented in the public client.

Last updated on