DuckDB 1.5 and 1.4 Feature Overview
Better Stackgo watch the original →
the gist
DuckDB 1.5 improves the CLI and adds a VARIANT type for semi-structured data, while 1.4 introduced critical production features like AES-256 encryption, MERGE INTO for upserts, and Apache Iceberg support.
Core Capabilities and Recent Updates
DuckDB functions as an embedded, column-oriented analytical database designed for high-speed computation on local machines. The 1.4 and 1.5 releases transition the tool from a simple query engine to a more robust option for local data processing. The 1.4 release established a baseline for production readiness by introducing AES-256 page-level encryption, a MERGE INTO command for git-style upserts, and the ability to write Apache Iceberg tables. The 1.5 release focuses on developer experience and data flexibility, introducing a redesigned CLI with improved color support and a pager, native GEOMETRY support, and a VARIANT data type.
The VARIANT Data Type
The VARIANT type allows for the storage of semi-structured data without requiring a rigid schema or manual JSON parsing. It stores data as typed binary, which provides better compression and query performance compared to raw JSON strings. Users can insert mixed types, including integers, strings, arrays, and objects, into a single column.
-- Example of inserting mixed types into a VARIANT column
CREATE TABLE data (val VARIANT);
INSERT INTO data VALUES (1), ('string'), ([1, 2, 3]), ({'key': 'value'});
Production Considerations and Limitations
DuckDB is optimized for analytical workloads rather than transactional ones. It is a single-writer system, meaning only one process can write to the database at a time, making it unsuitable for high-concurrency application backends where PostgreSQL or SQLite remain the standard. Memory management is a primary constraint; processing datasets exceeding available RAM can lead to crashes. Additionally, the encryption implementation is strictly bring-your-own-key. DuckDB does not manage, store, or rotate keys, and losing the key results in permanent data loss.