DuckDB 1.5.0 Ships VARIANT Type, Built-In Geometry, and Overhauled CLI in Largest Release Since 1.0
DuckDB 1.5.0 introduces a VARIANT type that speeds JSON queries up to 100x, promotes GEOMETRY into core, overhauls the CLI, and delivers broad performance gains across more than 6,500 commits from nearly 100 contributors.
Overview
DuckDB Labs released version 1.5.0 of its embeddable analytical database on March 9, 2026, codenamed “Variegata” after the paradise shelduck endemic to New Zealand. The release introduces three headline features — a native VARIANT data type, a built-in GEOMETRY type, and a redesigned command line client — alongside broad performance gains that touch joins, aggregations, checkpointing, and storage compression. The release comprises more than 6,500 commits from nearly 100 contributors since version 1.4.0.
DuckDB has carved out a distinct niche as an in-process OLAP engine that runs without a server. It is widely used by data scientists, analysts, and engineers who need to query large datasets locally or embed analytical capabilities into applications. Version 1.5.0 represents the last major release before the planned DuckDB 2.0 milestone, currently slated for September 2026.
VARIANT Type Eliminates JSON Bottleneck
The most technically significant addition is the VARIANT data type, inspired by Snowflake’s semi-structured data model. Unlike DuckDB’s existing JSON type, which stores values as plain text and requires parsing at query time, VARIANT encodes each value in a typed binary format with self-contained type information per row. This design enables DuckDB’s columnar engine to apply compression and push down predicates directly on the underlying data.
The practical impact is substantial. According to benchmarks published alongside the release, JSON analysis can run up to 100x faster when using VARIANT with automatic shredding, a process that decomposes semi-structured data into separate typed columns behind the scenes. VARIANT columns can also be written to and read from Parquet files, with automatic shredding applied during export.
GEOMETRY Moves Into Core
DuckDB 1.5.0 promotes the GEOMETRY type from the optional spatial extension into the core engine. The type uses Well-Known Binary (WKB) as its storage format and supports automatic shredding for uniform geometry columns, yielding approximately 3x compression improvements in those cases. Row-group statistics are now maintained for geometry data, enabling the query optimizer to skip irrelevant data blocks.
By embedding GEOMETRY in core, other extensions can produce and consume geometry values natively without depending on the spatial extension. The spatial extension itself continues to provide the bulk of spatial functions, but the underlying type is now universally accessible. Support has also been added for Coordinate Reference Systems (CRS) and for geometry values in the Postgres scanner and GeoArrow conversion paths.
Redesigned Command Line Client
The CLI has been rebuilt with usability improvements aimed at interactive users. The new client features dynamic prompts that display the current database and schema, dark and light mode auto-detection, a built-in pager that activates at 50 or more result rows, and zsh-style auto-completion. Users can reference previous query results using an underscore (_) shorthand, and the .last command re-renders the most recent output.
One notable addition is a Mermaid flowchart transformer for EXPLAIN output, which renders query plans as visual diagrams. The CLI is now installable via pip (pip install duckdb-cli), and a musl libc build is available for Alpine Linux and Docker environments.
Performance Gains Across the Engine
Beyond VARIANT, DuckDB 1.5.0 delivers a series of targeted performance improvements. Basic min/max aggregate queries run 6 to 18x faster by leveraging per-chunk statistics rather than scanning every row. Hash join eligibility has been expanded to queries with at least one equality condition even when complex expressions are present, enabling 10x or greater speedups in affected cases.
Deduplication and ranking queries benefit from automatic algorithm selection for top-N grouping, achieving up to 70x faster execution without manual query tuning. A new Common Subplan Elimination pass detects reusable calculations across common table expressions and materializes them once, producing speedups of up to 80 percent on TPC-DS and TPC-H benchmarks.
Non-blocking checkpointing is another structural improvement. In previous versions, checkpointing paused concurrent operations. DuckDB 1.5.0 manages write-ahead log operations in parallel with ongoing queries, raising TPC-H throughput on SF100 by 17 percent in benchmarks.
Lakehouse and Cloud Integration
The release updates the DuckLake specification to version 0.4, adding macro support, sorted tables, deletion inlining, and partial delete files. The Iceberg and Delta Lake extensions have also been expanded, with the Delta extension gaining support for writes via Unity Catalog and idempotent writes with table checkpoints.
On the cloud storage side, DuckDB 1.5.0 adds write support for Azure Blob Storage and Azure Data Lake Storage Gen2 through the COPY statement. The default HTTP backend for the httpfs extension has been switched from httplib to curl, a change intended to improve long-term stability and security for remote data access.
Extension Size Reductions
Extension packaging has been optimized across the board. The DuckLake extension shrank by 30 percent from 17 MB to 12 MB, while the Excel extension dropped 60 percent from 9 MB to 3 MB. These reductions lower download times and disk footprint for users who install extensions on demand.
What Comes Next
DuckDB 1.5.0 is the final planned minor release before version 2.0, which is targeted for September 2026. The 2.0 release will enforce breaking changes that are currently behind deprecation warnings, including the removal of the legacy arrow lambda syntax in favor of Python-style syntax. The existing LTS branch at version 1.4.0 will continue to receive updates until September 2026.