DuckDB v0.3.2stable Released Feb 07, 2022
Impact Score: 5/10

DuckDB: 0.3.2 Preview Release "Gibberifrons"

Source available โ€” automated, not human-reviewed

Component: duckdb ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

DuckDB v0.3.2. Source highlight: This preview release of DuckDB is named "Gibberifrons" after the Sunda teal

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • #2797: Add interface support for incremental/deferred query execution in main thread
  • #2682: Issue #561: Time Zone Support, #2703: #561: Time Zone Foundations
  • #2578: Enable support for multi-dot column references
  • #2613: Add support for EXPLAIN ANALYZE
  • #2569: Support installation of extensions from central repository
  • #2843: Parquet Writer: Support writing all types (test_all_types), and write column statistics, #2838: Add support for reading and writing the MAP type to the Parquet reader/writer, #2832: Parquet Writer Rework: Support complex types, #2597: Extend Parquet writer support for UNSIGNED types, various timestamp types, and correctly set converted types in more cases

๐Ÿ”ง Bug Fixes & Patches (6)

  • #3042: Issue #3029: Prevent CURRENT_QUERY folding
  • #3041: Fix #3017: detect recursive view construction and throw an appropriate error
  • #3040: Fix #3015: fix edge case issue with many null values in physical Top N
  • #3039: Update Java DuckDBAppender to allow appending null values - fixes issue 3035
  • #3028: Install covr from main development branch
  • #3026: Issue #2965: CTE parameter binding
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
This preview release of DuckDB is named "Gibberifrons" after the [Sunda teal](https://en.wikipedia.org/wiki/Sunda_teal) Binary builds are listed below. Feedback is very welcome. Note: Again, this release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the `EXPORT DATABASE` command with the old version followed by `IMPORT DATABASE` with the new version to migrate your data. See the [documentation](https://duckdb.org/docs/sql/statements/export) for details. Below a list of changes in this release ### Features - #2797: Add interface support for incremental/deferred query execution in main thread - #2682: Issue #561: Time Zone Support, #2703: #561: Time Zone Foundations - #2578: Enable support for multi-dot column references - #2613: Add support for EXPLAIN ANALYZE - #2569: Support installation of extensions from central repository - #2843: Parquet Writer: Support writing all types (test_all_types), and write column statistics, #2838: Add support for reading and writing the MAP type to the Parquet reader/writer, #2832: Parquet Writer Rework: Support complex types, #2597: Extend Parquet writer support for UNSIGNED types, various timestamp types, and correctly set converted types in more cases ### Minor Changes & Bug Fixes - #3042: Issue #3029: Prevent CURRENT_QUERY folding - #3041: Fix #3017: detect recursive view construction and throw an appropriate error - #3040: Fix #3015: fix edge case issue with many null values in physical Top N - #3039: Update Java DuckDBAppender to allow appending null values - fixes issue 3035 - #3028: Install covr from main development branch - #3026: Issue #2965: CTE parameter binding - #3024: Issue #3023: Simple filtered aggregates - #3021: Move install_extension test to test_slow - #3016: Issue #2923: Quote ENUM types - #3014: Issue #2908: UTF8 BOM Headers - #3013: Fix #3005: correctly normalify vector in array_slice - #3012: Fix #2999: Support ANY_JOIN in flattening correlated subqueries - #3011: Fix #2986: correctly copy old data over when calling repalloc in parser - #3004: Fix #2997: allow maximum CSV line size to be configurable - #3001: Document installation of dependencies in Python package README - #3000: Lookup parent frames for replacement scans - #2983: Fix #2975: fix off-by-one in transform of string constant to decimal in case of large negative numbers - #2982: Python API - allow duckdb.query to run arbitrary queries - #2980: Fix dead link in readme - #2979: Fixing Python CI - #2978: Ensure that users cant run concurrent queries using cursor() - #2974: Use cpp11 for rpkg - #2973: ODBC: SQLGetTypeInfo, SQLTables, and SQLColumns - #2971: Arrow use_async argument deprecation - #2969: FieldWriter/FieldReader for Backwards/Forwards Compatible Storage - #2963: Fixing parquet scan with or filters (issue #2955) - #2957: Fixing wrongful release of arrow arrays - #2956: fix: use selection vector to ensure ids are ordered - #2953: Fix cancellation configuration - #2952: Check coverage for R - #2951: Adding Cross Product Relation - #2949: Update copyright info to name DuckDB Foundation - #2946: Style R code - #2943: Disable arrow integration tests on Windows - #2941: Prefix inlined third party libraries with duckdb_ - #2940: CMakeLists.txt: Add 'delayimp.lib' to delay-loaded DLL on MSVC - #2939: src/include/duckdb/common/assert.hpp: Added winapi - #2937: Install Python 3.7 from source on Ubuntu 16 - #2935: adding the v to the amalgamation version string - #2930: list_slice test fix - #2925: Enable building the HTTPFS extension for both Windows and OSX - #2924: Add Node 17 to build factory - #2921: Fix for array_slice when end index is out of bounds - #2920: ODBC: cursor functions - #2919: Preserve Identifier Case by default, rather than lower-casing all unquoted identifiers - #2918: Add left join type to python relational API - #2917: list_slice alias for array_slice - #2912: Fixing Arrow Stream Output Error - #2906: not export deletes to allow crosscompile - #2905: Use difftime_str instead of hms class - #2904: Use correct hms value - #2903: Robust cancellation via concurrency - #2901: Minor tweaks in R code - #2899: Support for GROUP BY ALL/ORDER BY ALL - #2895: Add duckdb_keywords function - #2894: OSS Fuzz Fixes - #2890: ODBC driver assets - #2888: Add JDBC's setTimestamp method - #2886: Use double to store scale factor in TPC-H answers - #2885: Better support for Parquet 2 Page Layout - #2880: fix python profile html generator to support updated JSON format. - #2871: Issue #1423: Refactor PiecewiseMergeJoin - #2870: bug fix for order by header - #2869: Value Rework: Make all members private and use accessors - #2867: test: fixed typo for decimal type in test_all_types - #2865: Issue #2782: Non-Gregorian Calendars - #2864: C API: Deprecate direct access into duckdb_result and duckdb_column structs - #2863: ODBC: conformance core level of SQLAllocHandle, SQLFreeStmt, SQLGetDiagRec, SQLSetStmtAttr, and descriptors - #2856: Issue #2842: Implement make_date/time/timestamp - #2855: right case for winsock2.h - #2854: Issue #2831: Disable WINDOW FILTER - #2852: Issue #2827: Postgres datepart compatibility - #2851: When using Replace, keep the alias of the original column - #2850: Avoid reading past the end of the string when parsing a time as part of an interval - #2848: Fix #2847: Write parquet files to test dir - #2846: Issue #2780: Remove DATETZ type - #2845: Turn FileSync into a nop in the PipeFileSystem, and add clear error message when ParquetReader is used to read from a FIFO stream (e.g. /dev/stdin) - #2844: Support read_csv_auto from /dev/stdin - #2837: Fix potential use after move detected by linter, and add DISABLE_DUCKDB_REMOTE_INSTALL define - #2835: Issue #2834: ICU BindAdapterData::Equals - #2833: CI Fixes, TSAN Fix - #2830: Fix #2828: setup.py BUILD_HTTPFS does not work - #2825: Fix #2823: Correctly alter cardinality estimation in LIMIT/SAMPLE clauses - #2822: Issue #2779: DATE_PART structs - #2819: add `INTERVAL` support to node.js - #2818: Adding Parquet extension to node module - #2817: R: Make method definition more similar to S3 - #2808: Revert stack-overflow detection back to having a maximum (expression) depth in the transformer - #2807: Add discord badge - #2806: Refactor SQLLogicTest - #2802: R-Dataset: Add flag to enable async scanner - #2801: Add support for list equivalent of range/generate_series with timestamp+interval - #2800: Fix #2749: avoid copying subquery in BETWEEN expressions - #2799: Fix #2791: allocate data and mask locations to correctly handle counts > vector_size in the row_gather - #2798: Fix issue in perfect hash join when (max - min) does not fit into an INT64 - #2796: Addition of QUALIFY clause - #2794: Add Extension Install CI tests, and fix various issues found through this process - #2793: Enum Functions - #2792: PhysicalStreamingWindow operator - #2788: Issue #2778: Missing date parts - #2784: adds `BOOLEAN` support to node.js bindings - #2773: Fix #2761: correctly check that stderr is pointing to a terminal - #2770: Fix a bug in the sqlite3_api_wrapper that resulted in not correctly reporting why a database could not be opened - #2767: Issue #561: Implement ICU AGE - #2765: Add Connection::GetTableNames method to C++ API that allows you to extract the required table names from a query - #2760: Issue #561: Implement ICU DATEDIFF - #2759: Fix string constructor usage - #2757: Extension dashes to underscores - #2756: Issue #561: Implement ICU DATESUB - #2753: Python - Test All Types - #2751: Fix #2750: check enable_external_access flag in more locations - #2748: Cleanup pointer swizzling code - #2746: Fix #2745: correctly detect when a RECURSIVE CTE does not contain a reference to itself (i.e. is not a recursive CTE at all) - #2744: C++17 warning fixes, plus CI tests for compiling (parquet) amalgamation with C++17 - #2742: Common: typo and remove unused files - #2739: Add test_all_types function - #2738: GH Actions: avoid upload on master, and try to fix codecov failures on master - #2737: Typo: Rename Alises to Aliases - #2732: Tests for Python + #1732 - #2731: Pushing down OR filters - #2730: Issue #561: ICU Date addition - #2729: Add duckdb_functions table function - #2727: RAII for SortedBlock - #2725: Windows: Remove OVERLAPPED IO flag, it is not required and seems to cause concurrency problems - #2723: Fix #2471: correctly handle offset passed by ::UpdateSegment, and handle it earlier to clean up code - #2722: Infer COPY TO format from file extension - #2721: Update of PERCENT keyword in the LIMIT clause(#2671) - #2719: Fix #2713: correctly bind multi-part column references in correlated subqueries - #2718: Add "position" as an alias to the "instr" function - #2712: Use and_kleene for Arrow filters - #2711: Fix CSE optimizer: keep around expressions as they might be referenced in the expression_map - #2710: Modify LEAST/GREATEST to ignore NULL values - #2708: Fix #2701: Handle VALUES lists in correlated subqueries - #2706: Ignore cancel request on master - #2702: Rename snappy namespace to duckdb_snappy, and enable Parquet extension for the exported symbol checker - #2697: Support reading of ZSTD files, and add support for writing GZIP and ZSTD files - #2696: FetchDF for nested types (Lists, Maps and Structs) - #2693: Fix #2663: correctly implement EXTRACT(EPOCH from TIME) as seconds since midnight - #2692: Fix #2678: Fix undefined behavior for sequences close to INT64 min/INT64 max - #2691: Correctly handle synchronous I/O being returned from Windows API - #2690: Use templated memcpy/memcmp more - #2689: Reduce memory footprint of Python/R compilation by default by disabling unity builds unless DUCKDB_BUILD_UNITY flag is enabled - #2686: Fix #2685: prevent CSE optimizer from causing short-circuiting issues, and add disable_optimizers setting - #2684: Python 3.10 builds - #2681: Benchmark/test format cleanup - #2679: Bitpacking storage compression - #2673: remove extra semicolon. - #2665: Merge arrow_register into register function - #2662: Fix #2656: correctly transform DISTINCT with ORDER BY into DISTINCT ON - #2660: Issue #2614: Wide windows - #2659: Fix #2652: Make struct fields case insensitive - #2658: Fix various Windows unicode issues - #2657: Initializing matchers to avoid valgrind complaints - #2655: Add templated memcpy/memcmp - #2650: Fix bug in parquet reader causing list columns to be parsed incorrectly (#2557) - #2648: Fix #686: remove hard-coded memory limit in parser and fix error message propagation from exceptions thrown in parser - #2644: Fix #2641: correctly handle tab delimiters in COPY TO/FROM - #2642: Issue #2552: SUBSTR BIGINT - #2639: Fix #2586: correct semantics for extract(second, ...) from intervals - #2636: Hashing enum values (Enum comparison bug fix) - #2635: Fix for R factor scans - #2631: ODBC: Refactoring Parameter Descriptor - #2630: Try to Cast Enums to other types - #2626: Escape column names in dbWriteTable() Fixes #2622 - #2623: Fix #2612: Correctly check that default is set on copy of SetDefaultInfo - #2611: Multithreaded Python - #2609: Configuration Rework & Cleanup - #2602: Adding pragma option for parquet binary as string - #2583: Issue #2549: Support IGNORE NULLS - #2576: Add generate_subscripts macro - #2526: Sequence ownership