HomePlaygroundExpressionsDocsDriversStatusChangelog GitHub
Latest
ðŸŽŊ Type-Safe Seeding — qail exec for AST-native database execution

New: qail exec Command

  • Type-Safe Execution: qail exec "get::users" --url postgres://...
  • File-Based Seeding: qail exec -f seed.qail --url postgres://...
  • Transaction Support: --tx wraps all statements with auto-rollback on error
  • Dry-Run Mode: --dry-run previews generated SQL without executing
  • Batch Execution: Multiple QAIL statements per file (one per line)

v0.14.18

January 9, 2026
ðŸŽŊ Type-Safe Seeding — qail exec for database operations

qail exec Command

  • Type-Safe: Uses driver.execute(ast) — no raw SQL
  • QAIL Syntax: qail exec "get users fields id where active = true"
  • Batch Support: Execute multiple statements from .qail files
  • Transaction: --tx flag with automatic rollback on error

Documentation

  • Updated CLI doc comments to v2 QAIL syntax examples
  • Added qail exec to CLI reference docs

v0.14.13

January 2, 2026
ðŸŽŊ Unified Qail AST — Same API across PostgreSQL, Qdrant, Redis

qail-redis: Unified API

  • Qail Constructors: Qail::redis_get(), Qail::redis_set(), Qail::redis_incr()
  • RedisExt Trait: .redis_ex(seconds), .redis_nx(), .redis_xx()
  • Core Integration: Redis actions added to Action enum
  • Native RESP3: Direct wire encoding, connection pooling

Vision: "QAIL Decides"

  • Qail::get("users") — PostgreSQL (facts)
  • Qail::search("products") — Qdrant (meaning)
  • Qail::redis_get("session") — Redis (time)

v0.14.12

January 2, 2026
⚡ 4x Qdrant Speedup - HTTP/2 Pipelining & Pooling

Performance

  • HTTP/2 Pipelining: search_batch() multiplexes requests (4.00x faster)
  • Connection Pooling: QdrantPool with semaphore concurrency (1.46x faster)
  • Zero-Copy: Buffer splitting replaces cloning for true zero-alloc

v0.14.10

January 1, 2026

New Crate: qail-qdrant

  • Zero-Copy gRPC Driver: Direct protobuf wire encoding (1.17x faster than official)
  • REST Driver: Full Point/Payload API support
  • Vector Support: Value::Vector(Vec<f32>) AST extension

v0.14.9

January 1, 2026

Security

  • PG: Reject literal NULL bytes (0x00) in execute_raw()
  • PG: encode_value() now returns Result for safe error handling

v0.14.8

January 1, 2026
🔒 Production Hardening - Connection lifecycle, identity columns

Features

  • Terminate on Drop: Sends 'X' packet for graceful connection cleanup
  • Identity Columns: GENERATED ALWAYS AS IDENTITY support
  • SERIAL Fix: Correctly converts to INTEGER in ALTER TABLE

Verified

  • Pool overhead: 9.5Ξs/checkout (excellent)
  • 3D/4D arrays: Work correctly
  • All chaos tests passed

v0.14.7

January 1, 2026
ðŸĒ Enterprise Shadow Migrations - PlanetScale for Everyone

Features

  • COPY Streaming: Zero-dependency data sync (100+ rows/sec)
  • State Persistence: _qail_shadow_state table for recovery
  • Safe Promote: Apply to primary, don't swap databases
  • Column Intersection: Handles ADD/DROP COLUMN correctly
  • Data Drift Warning: Warns about changes since sync

Stress Tested

  • Promote without shadow → proper error
  • Double abort → idempotent
  • ADD COLUMN migration → verified

v0.14.6

January 1, 2026
🚀 1.3M Queries/Second - 10-Connection Pool Benchmark

Fixed

  • Shadow migration bug - now applies base schema before diff commands
  • Added schema_to_commands() for AST-native schema conversion
  • Updated Migration Impact Analyzer docs with real test output

Performance

  • Pool Benchmark: 78M queries in 60s with 10 connections
  • Single vs Pool: 336K q/s → 1.3M q/s (~4x throughput)

Added

  • Shadow migration shows [1.5/4] step for base schema
  • Rollback Safety Analysis table in analyzer docs
  • CI/CD integration with GitHub Actions --ci flag

v0.14.4

December 31, 2025
🏎ïļ 27% Faster Than SQLx - Zero-alloc + LRU Cache

Performance (Zero-Alloc Encoding)

  • Reusable sql_buf and params_buf on PgConnection
  • fetch_all() now uses prepared statement caching by default
  • LIMIT/OFFSET use parameterized values ($N) - dramatically improves cache hits

Enterprise Memory Management (LRU Cache)

  • Bounded LRU cache for prepared statements (default: 1000)
  • Auto-evicts least recently used statements when full
  • New clear_cache() and cache_stats() methods

Benchmark Results (50K iterations)

  • qail-pg (cached): 4,534 q/s (221Ξs)
  • SeaORM: 4,032 q/s - 12% slower
  • SQLx: 3,573 q/s - 27% slower

v0.14.3

December 31, 2025

Added

  • qail migrate create now generates timestamped .up.qail and .down.qail file pairs
  • Format: YYYYMMDDHHMMSS_name.up.qail / YYYYMMDDHHMMSS_name.down.qail
  • Inline metadata: @name, @created, @author, @depends
  • Example: qail migrate create add_users --author "orion"

v0.14.2

December 31, 2025
🎉 100% PostgreSQL Coverage - Expressions, DML, and DDL

Wire Protocol Encoders (AST-Native)

  • DISTINCT ON (col1, col2, ...) queries
  • COUNT(*) FILTER (WHERE ...) aggregate syntax
  • Window FRAME clause (ROWS/RANGE BETWEEN ... AND ...)
  • GROUP BY with ROLLUP, CUBE, and GROUPING SETS
  • CREATE VIEW and DROP VIEW DDL
  • Comprehensive tests: complex_test.rs, expr_test.rs

Expression System (100% Grammar Coverage)

  • Expr::ArrayConstructor - ARRAY[col1, col2, ...]
  • Expr::RowConstructor - ROW(a, b, c)
  • Expr::Subscript - Array/string subscripting arr[1]
  • Expr::Collate - Collation expressions col COLLATE "C"
  • Expr::FieldAccess - Composite field selection (row).field
  • GroupByMode::GroupingSets - GROUPING SETS ((a, b), (c))
  • Action::CreateView and Action::DropView

CLI Improvements

  • qail diff --pretty displays MigrationClass (reversible/data-losing/irreversible)

Changed

  • Expr::Window.params from Vec<Value> to Vec<Expr> for native AST philosophy

v0.14.1

December 30, 2025

Fixed

  • Critical bug in encode_update() where column names were encoded as $1 placeholders

Added

  • Comprehensive battle test suite (battle_test.rs) with 19 query operations
  • Modularized values.rs into values/ directory

v0.14.0

December 30, 2025

Added

  • MigrationClass enum for classifying migrations: Reversible, DataLosing, Irreversible
  • Type safety warnings for unsafe rollbacks
  • FK ordering regression tests for parent-before-child table creation

Changed

  • Modularized migrations.rs (1044 lines) into 9 focused modules

v0.13.x

December 2025
  • CTE with RECURSIVE support
  • Connection pooling for qail-pg
  • Enhanced JOIN condition encoding
  • COPY protocol for bulk inserts

Earlier Versions

For complete history, see the full changelog on GitHub .