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-bridgelocal 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
NATIVEandPARQUET - 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
Authorizationheader by hand) and Enterprise token auth - SHOW CREATE LIVE VIEW - Documented retrieving a live view's
CREATEstatement, alongside theCREATE LIVE VIEWandDROP LIVE VIEWpermissions - Added the
live_views()catalogue function and theLtable_typediscriminator to the meta functions page - Added the
is_end_of_month()date-time function, which is leap-year aware and returnsfalsefornull - Documented the
query.timeoutduration key (120s,1m,500ms) alongside the now-deprecatedquery.timeout.sec, and how the two relate - Added the
cairo.wal.apply.suspended.tablesandcairo.wal.apply.suspended.write.deniedconfiguration properties - SHOW CREATE MATERIALIZED VIEW - Documented retrieving a materialized view's
CREATEstatement, and alphabetized the SHOW reference page - SHOW CREATE DATABASE - Documented dumping the whole database schema as round-trippable DDL, with
INCLUDE/EXCLUDEcategory filtering - EXPLAIN - Added the
Encode sort/Encode sort lightplan node to the plan-node reference - LIMIT - Documented null
LIMITbounds (supplied via bind variables) and their two-bound semantics - Added the
cairo.sql.parquet.cache.memory.sizeconfiguration property (256 MB default), deprecating the slot-basedcairo.sql.parquet.frame.cache.capacity - Documented
cairo.rootabsolute-path behavior: theconf,import,export,tmp, and.checkpointdirectories 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
tokensetting or the Open Sourcehttp_headersbasic-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 documentedALTER COLUMN TYPEon 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 ... TTLorALTER MATERIALIZED VIEW ... SET TTLand 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_ROOTshould not be set in Docker
July 2026
QuestDB Enterprise Releases
Updated
- Storage policy - Clarified stage enforcement:
TO REMOTEis now accepted and stored but not yet enforced,DROP REMOTEis rejected at parse time, and the policy check interval is 5 minutes - systemd deployment - Added the
jdk.internal.vmmodule export to the service example
June 2026
Releases
QuestDB Enterprise Releases
New
- Row-level security - New cookbook recipe for restricting row visibility per user
Reference
- Documented the column wildcard with optional
EXCLUDElist for column-levelGRANTandREVOKE—GRANT SELECT ON trades(*) TO usergrants every current column, andEXCLUDEomits specific ones - Documented custom root CA support for the replication object store: the
ca_cert_fileandca_builtin_rootsconnection-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 BYwith 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(), andskewness_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
DECLAREvariables
Reference
- Documented gzip request compression for ILP/HTTP and updated Telegraf guidance for QuestDB 9.1.0+
- Added
ntile(),cume_dist(), andnth_value()window functions - Added
regr_r2()coefficient of determination aggregate - Fixed
timestamp_nsvalid range documentation - Added precise microsecond-grained timestamp examples for PHP clients
- Fixed PIVOT syntax: removed redundant
FORfrom 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 NATIVEstage;TO PARQUETnow 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
TTLfor 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
- Storage policy - Documentation for configuring storage policies
- UNNEST - SQL reference for unnesting arrays into rows
- LATERAL JOIN - SQL reference for lateral subqueries
- Sparkline and bar visualization functions - Text-based chart functions for terminal and console output
- StructArrayExplode transform - Kafka SMT for exploding struct arrays
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
/expendpoint - Documented timeout parameter, removed outdated warning
March 2026
Releases
- 9.3.4 - Released March 26, 2026
QuestDB Enterprise Releases
New
- Log returns and gamma scalping signal cookbook recipes
Reference
- Added
array_sort()andarray_reverse()functions - Added TLS certificate expiration metrics to Prometheus monitoring docs
- Removed obsolete
cairo.sql.backup.*configuration keys - Fixed RLE encoding supported type documentation
Updated
- SAMPLE BY - Refreshed page with improved structure and examples
- HORIZON JOIN - Improved examples
- Cookbook - Refreshed recipes with lookback patterns, named windows, and updated schema references
- Per-column Parquet encoding and compression - Comprehensive documentation for column-level settings
- Database replication - GCP NFS transport and tuning updates
- Ingestion benchmarks - Updated benchmark image to Q1 2026
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
- Named windows - Support for reusable
WINDOWclause definitions - Parquet export - Fixed compression defaults, restructured page, updated
read_parquettypes - Backup - Documented
backup.schedule.cronformat, improved scheduler visibility - Date/time functions - Page updates and corrections
- Window functions - Added limitation documentation
- Database replication - Added workload identity options, OrderBookToArray SMT documentation
- Kubernetes secrets - Documented secrets-from-files for container deployments
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
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
- Added
percent_rank()window function - Added
arg_min()andarg_max()aggregation functions - Added
length_bytes()function for byte-length of strings - Added
rnd_symbol_zipf()and weighted random generators - Added Euclidean and geographic geo functions
- Extended date arithmetic with sub-day units
Updated
- Window functions - Restructured into dedicated section with improved navigation, added EMA, VWEMA, and ksum() functions
- Views and materialized views - Comprehensive documentation overhaul with improved examples and clearer explanations
- Designated timestamp - Consolidated timestamp documentation with TICK syntax examples
- Enterprise backup - Improved documentation with clearer instructions
December 2025
Releases
QuestDB Enterprise Releases
New
- Builtin profiler - Documentation for QuestDB's built-in query profiler
- WINDOW JOIN - SQL reference for window joins with time-based lookups
Reference
- Added
weighted_avg(),weighted_stddev_rel(),weighted_stddev_freq()functions - Documented compact period syntax in SAMPLE BY
Updated
- Materialized views - Added
REFRESH PERIOD (SAMPLE BY INTERVAL)compact syntax documentation - Time-series optimizations - Improved explanations
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
New
- Hetzner deployment - Step-by-step guide for deploying QuestDB on Hetzner Cloud
- DECIMAL datatype - Documentation for precise decimal arithmetic
- PGWire OIDC integration - Authentication via OpenID Connect
Reference
- Added
first()andlast()support for additional datatypes - Added
first_not_null()andlast_not_null()array support
Updated
- Parquet export - Complete documentation for exporting data to Parquet format
- Shared pool configuration - Updated with network, query, and write shared pool options
- SQL hints - Rewritten section on temporal join hints
October 2025
Releases
- 9.1.0 - Released October 3, 2025
QuestDB Enterprise Releases
- 3.0.4 - Released October 27, 2025
New
- PGWire for C/C++ - Guide for C/C++ applications using PostgreSQL wire protocol
- Table and column naming rules - Guidelines for valid identifiers
Reference
- Added
w(week) unit to SAMPLE BY reference
Updated
- Architecture guide - Refreshed with current implementation details
- Nanoseconds - Added nanosecond timestamp precision documentation
TRUNCATE TABLE- AddedIF EXISTSclause
September 2025
QuestDB Enterprise Releases
- 3.0.3 - Released September 15, 2025
Updated
- Partitioning - Improved formatting and explanations
- Go client examples - Updated to v4 API
August 2025
Releases
QuestDB Enterprise Releases
New
- Array functions - Documentation for array manipulation functions
Updated
to_timestamp()- Improved documentation with more examples- Web Console - Updated documentation for latest console features
July 2025
Releases
QuestDB Enterprise Releases
- 3.0.0 - Released July 23, 2025
New
- N-dimensional arrays - Comprehensive guide to multi-dimensional arrays
- Order book analytics - Guide for processing order book data
- Period materialized views - Time-based refresh for materialized views
- ASOF JOIN TOLERANCE - Limit lookback window in temporal joins
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.