After six years of development, Duckdb presented the release of the DBMS Duckdb 1.0. It is positioned as an option similar to SQLite for analytical queries. Duckdb combines the compactness and ability to connect as a built-in library like SQLite, along with storage of a database in one file and a user-friendly CLI interface. It also provides means and optimizations for executing analytical queries that cover a significant part of the stored data, such as aggregating contents of tables or merging large tables. The project code is written in C++ and is spread under the MIT license.
Version 1.0 marks the first stable release of the project, with a focus on increased stability rather than expanding functionality. This new version also fixes the data storage format and ensures reverse compatibility from the previous release. Future issues will pay closer attention to new features, maintaining compatibility between releases, and stabilizing the SQL and C dialect. If there is a need to change the SQL semantics in the future, developers will provide warnings and workarounds to ensure existing code performance.
Duckdb supports an expanded SQL language dialect, including features for processing complex and long-term queries. This includes the ability to use complex types like arrays, structures, and associations, as well as implementing correlated subqueries. Duckdb also supports simultaneous execution of multiple queries, direct queries from CSV files, and Parquet files. Import support from PostgreSQL is also available.
In addition to the SQLite shell code, Duckdb utilizes components from PostgreSQL and MonetDB, its own window functions implementation based on the Segment Tree Aggregation algorithm, the RE2 library processor, a query optimizer, MVCC mechanism for concurrency control, and a query vector based on the Hyper-Pi algorithm for efficient query execution handling large value sets simultaneously.