Documentation changelog

This page tracks significant updates to the QuestDB documentation.

August 2026

Releases

  • 10.0.0 - Released August 6, 2026

New

  • Connect - New top-level Connect section that gathers the native client libraries, the compatibility protocols (ILP, PGWire, REST), and the wire-protocol specifications under one home, with a decision table for picking a path and a per-language QWP support matrix
  • Connect string reference - Every configuration key for the native clients, with worked connect strings for common setups, a goal-to-keys recipe table, sender restart and replay semantics, and an alphabetical key index
  • Wire protocols - QWP specifications for client implementers, covering ingress over WebSocket, egress over WebSocket, and expected client behavior
  • Store-and-forward - New section on client-side disk buffering: choosing between memory mode and disk-backed offload, concepts, configuration, and operating and tuning
  • Client failover - How clients detect a failed primary and switch to a healthy peer using multi-host address lists, host-health classification, role filtering, and zone-aware selection, plus its configuration
  • Delivery semantics - At-least-once delivery, where duplicate rows arise, and how designated timestamps combine with deduplication for exactly-once outcomes
  • Agents - Which protocols AI agents use to drive QuestDB, the tooling available to them, and how to grant scoped access
  • Live views - Incrementally maintained window-function queries over a WAL table, queried like a regular table, with CREATE LIVE VIEW, DROP LIVE VIEW, and the cairo.live.view.* settings
  • Notebooks - Web Console notebooks that combine SQL, markdown, and charts in one tab, covering cells, charts, variables, live dashboards, and sharing
  • MCP connection - Connect AI coding agents to the Web Console through the @questdb/mcp-bridge local MCP server, with the pairing flow, the four permission levels, and the available agent tools
  • Register QuestDB Parquet as Apache Iceberg tables - Expose Parquet partitions as Iceberg tables and query them in place from Spark, Trino, DuckDB, or PyIceberg
  • ALTER TABLE REBASE WAL - New reference page for rebuilding a suspended WAL table under a fresh sequencer, with its requirements and permission
  • ALTER TABLE SET FORMAT - New reference page for switching a table's partition storage format between NATIVE and PARQUET
  • QWP configuration - Server-side settings for the QWP ingestion (/write/v4) and query (/read/v1) endpoints

Reference

  • CREATE TABLE - Added the FORMAT { NATIVE | PARQUET } clause to store partitions as Parquet by default on partitioned WAL tables
  • REST API - Merged the overlapping authentication sections into one, with basic auth (including building the Authorization header by hand) and Enterprise token auth
  • SHOW CREATE LIVE VIEW - Documented retrieving a live view's CREATE statement, alongside the CREATE LIVE VIEW and DROP LIVE VIEW permissions
  • Added the live_views() catalogue function and the L table_type discriminator to the meta functions page
  • Added the is_end_of_month() date-time function, which is leap-year aware and returns false for null
  • Documented the query.timeout duration key (120s, 1m, 500ms) alongside the now-deprecated query.timeout.sec, and how the two relate
  • Added the cairo.wal.apply.suspended.tables and cairo.wal.apply.suspended.write.denied configuration properties
  • SHOW CREATE MATERIALIZED VIEW - Documented retrieving a materialized view's CREATE statement, and alphabetized the SHOW reference page
  • SHOW CREATE DATABASE - Documented dumping the whole database schema as round-trippable DDL, with INCLUDE/EXCLUDE category filtering
  • EXPLAIN - Added the Encode sort / Encode sort light plan node to the plan-node reference
  • LIMIT - Documented null LIMIT bounds (supplied via bind variables) and their two-bound semantics
  • Added the cairo.sql.parquet.cache.memory.size configuration property (256 MB default), deprecating the slot-based cairo.sql.parquet.frame.cache.capacity
  • Documented cairo.root absolute-path behavior: the conf, import, export, tmp, and .checkpoint directories become siblings of the specified directory rather than children of the server root, so leave it at the default under Docker

Updated

  • Client libraries rewritten for the QWP binary protocol, unifying ingestion and streaming SQL queries under one handle: Java, Python, Go, C & C++, Rust, and .NET
  • Web Console - Documented query sharing by link and tab import/export in the code editor, custom AI providers and per-provider permission levels in QuestDB AI, automatic column sizing in the result grid, and the storage policy section in table details
  • AI coding agents - Repositioned around the agent skill and the Web Console MCP bridge together
  • Telegraf - Documented authenticating from Telegraf with the Enterprise token setting or the Open Source http_headers basic-auth equivalent
  • Integrations overview - Synced with the sidebar: added the six missing pages, moved MindsDB into Other Tools, and added a Data Ingestion cross-reference
  • Parquet - Moved the Parquet page to Concepts and revamped it around creating tables as Parquet, in-place conversion (storage policies and ALTER TABLE), and export; also documented ALTER COLUMN TYPE on Parquet partitions and relaxed the in-place conversion constraints
  • Storage engine - Reworked the three-tier storage model: local native or Parquet storage, then remote object storage
  • systemd deployment - Reworked the systemd service guide to cover both QuestDB Open Source and Enterprise
  • Time to live (TTL) - Documented TTL on materialized views, set with CREATE MATERIALIZED VIEW ... TTL or ALTER MATERIALIZED VIEW ... SET TTL and managed independently of the base table's TTL
  • Result grid - Documented the Parquet and CSV download options in the web console result grid
  • Docker Compose configuration - Reworked the volume-permission guidance and explained why QDB_CAIRO_ROOT should not be set in Docker

July 2026

QuestDB Enterprise Releases

  • 3.3.4 - Released July 31, 2026
  • 3.3.3 - Released July 1, 2026

Updated

  • Storage policy - Clarified stage enforcement: TO REMOTE is now accepted and stored but not yet enforced, DROP REMOTE is rejected at parse time, and the policy check interval is 5 minutes
  • systemd deployment - Added the jdk.internal.vm module export to the service example

June 2026

Releases

  • 9.4.3 - Released June 15, 2026
  • 9.4.2 - Released June 9, 2026
  • 9.4.1 - Released June 3, 2026

QuestDB Enterprise Releases

  • 3.3.2 - Released June 23, 2026
  • 3.3.1 - Released June 9, 2026
  • 3.3.0 - Released June 3, 2026

New

Reference

  • Documented the column wildcard with optional EXCLUDE list for column-level GRANT and REVOKEGRANT SELECT ON trades(*) TO user grants every current column, and EXCLUDE omits specific ones
  • Documented custom root CA support for the replication object store: the ca_cert_file and ca_builtin_roots connection-string parameters trust a private, internal, or self-signed CA for S3, Azure Blob, and GCS stores
  • Added array_agg() aggregate function, covering scalar and array input forms, SAMPLE BY with FILL, and NULL handling
  • Documented the twap() designated-timestamp limitation: the timestamp argument must be the table's designated timestamp
  • Added kurtosis(), kurtosis_pop(), skewness(), and skewness_pop() aggregate functions for distribution shape

Updated

  • systemd service example - Updated the Java requirement from 17 to 25 across deployment and quick-start prerequisites
  • GCP deployment - Reworked for VM install and aligned with the AWS and Azure guides
  • Capacity planning - Reworked the OS configuration guidance for open file limits and vm.max_map_count

May 2026

Releases

  • 9.4.0 - Released May 18, 2026

New

  • Out-of-order data - New concept page covering O3 behavior per ingestion method, engine mechanics, write amplification (with the table_write_amp_* columns), tuning, and common scenarios
  • Posting index and covering index - New deep-dive on posting indexes, plus covering index documentation across CREATE TABLE, ALTER TABLE, SHOW, EXPLAIN, and schema design
  • Order Flow Imbalance (OFI) - Cookbook recipe using the Cont-Kukanov-Stoikov definition computed from L1 quote changes, with per-ECN and consolidated variants
  • Upgrade QuestDB - Guide for upgrading QuestDB versions
  • Table/column versioning - Added versioning info to root directory structure
  • DECLARE with Grafana time range - Pass Grafana dashboard time range into QuestDB DECLARE variables

Reference

  • Documented gzip request compression for ILP/HTTP and updated Telegraf guidance for QuestDB 9.1.0+
  • Added ntile(), cume_dist(), and nth_value() window functions
  • Added regr_r2() coefficient of determination aggregate
  • Fixed timestamp_ns valid range documentation
  • Added precise microsecond-grained timestamp examples for PHP clients
  • Fixed PIVOT syntax: removed redundant FOR from multiple pivot statements
  • Updated Python client to use sender.new_buffer() for buffer initialization

Updated

  • Go client - Rewrote for the QWP binary protocol: ingestion, the QwpQueryClient query API, store-and-forward, and failover
  • Storage policy - Removed the DROP NATIVE stage; TO PARQUET now removes native files and serves reads from the Parquet file
  • SQL extensions and compatibility - Rewritten as the canonical SQL dialect reference covering time-series clauses and joins, query syntax conveniences, storage extensions, PIVOT vs SQL Server/PostgreSQL, JSON and UNNEST, and a full inventory of standard SQL features not supported with QuestDB equivalents. Sidebar entry moved to the top of Query & SQL Reference
  • systemd service example - Corrected JVM argument ordering, switched to UseParallelGC, set -Dcontainerized=false, and added required setup paths
  • Materialized views - Removed storage policy support for materialized views; use TTL for retention instead
  • Aggregation functions - Added demo tags and updated examples with runnable queries
  • LATEST ON - Added demo tags to examples
  • JOIN - Updated examples to use demo data
  • GROUP BY - Replaced examples with fx_trades demo queries
  • DISTINCT - Replaced examples with fx_trades demo queries
  • CAST - Added demo tags to examples
  • PIVOT - Fixed examples to use demo server data
  • Array functions - Improved page with demo examples
  • TICK syntax - Documented imprecise date support
  • SAMPLE BY - Documented FILL(PREV(col)) fast-path syntax and updated FROM-TO limitations for keyed queries
  • Grafana integration - Restructured query macros section with full documentation of all five plugin macros
  • Configuration reference - Revamped into 17 dedicated per-subsystem pages with epigraph-style property listings

April 2026

Releases

  • 9.3.5 - Released April 13, 2026

QuestDB Enterprise Releases

  • 3.2.5 - Released April 13, 2026

New

Reference

  • Added Parquet bloom filters syntax and configuration
  • Added covar_samp(), corr(), and other statistical window functions
  • Added array_elem_min(), array_elem_max(), array_elem_sum(), array_elem_avg() to array functions
  • Fixed alphabetical ordering and added missing functions across reference pages
  • Added Azure ReadWrite disk caching warning to deployment docs

Updated

  • SQL reference pages - Replaced railroad diagrams with code-based syntax blocks across 65 SQL pages, with updated examples
  • SAMPLE BY - Updated timezone bucket alignment behavior
  • Parquet export - Added partitioning options for exports
  • WINDOW JOIN - Documented dynamic window boundaries
  • HORIZON JOIN - Documented multi-RHS table support
  • JOIN - Improved join documentation and reorganized page
  • Web Console - Added table details, updated screenshots
  • TTL - Fixed removal syntax and general improvements
  • REST API /exp endpoint - Documented timeout parameter, removed outdated warning

March 2026

Releases

  • 9.3.4 - Released March 26, 2026

QuestDB Enterprise Releases

  • 3.2.4 - Released March 26, 2026
  • 3.2.3 - Released March 3, 2026

New

Reference

Updated

February 2026

Releases

  • 9.3.3 - Released February 25, 2026

QuestDB Enterprise Releases

  • 3.2.2 - Released February 4, 2026

New

  • HORIZON JOIN - Full reference page for post-trade analysis joins
  • Post-trade analysis recipes: markout, slippage, implementation shortfall, ECN scorecard, last-look, and VPIN
  • Financial indicator recipes: RSI, MACD, Stochastic, Rate of Change, ATR, Donchian Channels, Keltner Channels, Realized Volatility, OBV, Maximum Drawdown, Bid-Ask Spread
  • TICK Exchange Calendars - Enterprise feature for market-hours-aware time intervals
  • AI Coding Agents - Renamed from LLM Coding Assistants, added QuestDB agent skill documentation

Reference

  • Added twap() aggregate function
  • Added array_build() function
  • Documented count(distinct) syntax
  • Updated Java ILP client artifact
  • Added WAL cleaner documentation for replication

Updated

January 2026

Releases

  • 9.3.2 - Released January 28, 2026
  • 9.3.1 - Released January 14, 2026
  • 9.3.0 - Released January 9, 2026

QuestDB Enterprise Releases

  • 3.2.1 - Released January 29, 2026
  • 3.2.0 - Released January 19, 2026

New

  • Cookbook - Collection of 40+ recipes for common SQL patterns, integrations, and operations
  • Capital markets recipes - Financial calculations including VWAP, Bollinger Bands, TICK/TRIN, volume analysis, and more
  • TICK syntax - New DSL for expressing time intervals with intuitive syntax like '$now - 1h..$now'
  • AI Assistant reference - Documentation for the QuestDB AI Assistant
  • PIVOT - SQL keyword for rotating rows into columns

Reference

Updated

December 2025

Releases

  • 9.2.3 - Released December 18, 2025
  • 9.2.2 - Released December 1, 2025

QuestDB Enterprise Releases

  • 3.1.2 - Released December 18, 2025
  • 3.1.1 - Released December 1, 2025

New

  • Builtin profiler - Documentation for QuestDB's built-in query profiler
  • WINDOW JOIN - SQL reference for window joins with time-based lookups

Reference

Updated

November 2025

Releases

  • 9.2.1 - Released November 25, 2025
  • 9.2.0 - Released November 13, 2025
  • 9.1.1 - Released November 3, 2025

QuestDB Enterprise Releases

  • 3.1.0 - Released November 25, 2025
  • 3.0.5 - Released November 7, 2025

New

Reference

  • Added first() and last() support for additional datatypes
  • Added first_not_null() and last_not_null() array support

Updated

October 2025

Releases

  • 9.1.0 - Released October 3, 2025

QuestDB Enterprise Releases

  • 3.0.4 - Released October 27, 2025

New

Reference

Updated

September 2025

QuestDB Enterprise Releases

  • 3.0.3 - Released September 15, 2025

Updated

August 2025

Releases

  • 9.0.3 - Released August 29, 2025
  • 9.0.2 - Released August 15, 2025

QuestDB Enterprise Releases

  • 3.0.2 - Released August 29, 2025
  • 3.0.1 - Released August 15, 2025

New

Updated

July 2025

Releases

  • 9.0.1 - Released July 23, 2025
  • 9.0.0 - Released July 11, 2025

QuestDB Enterprise Releases

  • 3.0.0 - Released July 23, 2025

New

Updated

  • ILP clients - Array support added to Python, C++, Rust, Java, and .NET clients
  • WAL metrics - Added metrics for detecting WAL apply lag

Earlier updates

For documentation changes before July 2025, see the git commit history.