Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: duckdb/duckdb-python

v1.5.4 Bugfix Release

17 Jun 10:51
@evertlammerts evertlammerts
305369d
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

See DuckDB's changelog for all changes in DuckDB.

What's Changed in DuckDB-Python

Contributors

evertlammerts
Assets 2
Loading
djouallah reacted with hooray emoji
1 person reacted

v1.4.5 Bugfix Release

17 Jun 10:51
@evertlammerts evertlammerts
416cc6e
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

This is a patch release for the v1.4 LTS line. See DuckDB's changelog for all changes in DuckDB.

What's changed in DuckDB-Python

  • Fix a memory leak on every Python scalar UDF call.
  • Fix data corruption when reading from fsspec filesystems concurrently (seek+read/write are now atomic).
  • Fix incorrect results from Arrow/PyArrow filter pushdown when an OR predicate contains a dynamic filter (e.g. ORDER BY ... NULLS FIRST LIMIT n), reported in issue #460.
  • Raise a clear error instead of segfaulting when None is passed to Relation.join.
Loading

v1.5.3 Bugfix Release

20 May 11:59
@evertlammerts evertlammerts
811b135
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

See the DuckDB core release notes here: https://github.com/duckdb/duckdb/releases/tag/v1.5.3

What's Changed in DuckDB Python

Full Changelog: v1.5.2...v1.5.3

Contributors

evertlammerts
Loading
djouallah reacted with hooray emoji
1 person reacted

v1.5.2 Bugfix Release

13 Apr 11:36
@evertlammerts evertlammerts
2aea44e
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

See the DuckDB core release notes here: https://github.com/duckdb/duckdb/releases/tag/v1.5.2

What's Changed in duckdb-python

Contributors

evertlammerts and OutSquareCapital
Loading
djouallah and OutSquareCapital reacted with hooray emoji
2 people reacted

v1.5.1 Bugfix Release

23 Mar 12:13
@evertlammerts evertlammerts
b54a492
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

DuckDB core v1.5.1 Changelog: duckdb/duckdb@v1.5.0...v1.5.1

What's Changed

  • Re-added basic support for the GEOMETRY type
Loading
djouallah reacted with thumbs up emoji danilo-css reacted with rocket emoji
2 people reacted

DuckDB Python 1.5.0 "Variegata"

09 Mar 12:37
@evertlammerts evertlammerts
87e7928
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

This is the 1.5.0 release of DuckDB's Python bindings. For a list of changes in DuckDB core, have a look at the DuckDB release notes and the blogpost.

Breaking Changes

  • Dropped Python 3.9 support. The minimum supported version is now Python 3.10.
  • Removed deprecated duckdb.typing and duckdb.functional modules. These were deprecated in 1.4.0. Use duckdb.sqltypes and duckdb.func instead.
  • Renamed column parameter to expression in relational API functions (e.g., min, max, sum, mean, etc.) to better reflect that these accept expressions, not just column names.
  • Deprecated fetch_arrow_table() and fetch_record_batch() on connections and relations. Use the new to_arrow_table() and to_arrow_reader() methods instead.

New Features

  • Polars LazyFrame projection and filter pushdown. DuckDB can now push down projections and filters when scanning Polars LazyFrames, including support for cast nodes and unstrict casts.
  • Polars Int128 / UInt128 support.
  • VARIANT type support — Python conversion, NumPy array wrapping, and type stubs.
  • TIME_NS type support — nanosecond-precision time values across Python, NumPy, and Spark type systems.
  • Profiling API — new get_profiling_info() and get_profiling_json() methods on connections, plus a refactored query_graph module with improved HTML visualization (dark mode, expandable phases, depth).
  • to_arrow_table() and to_arrow_reader() — new methods on connections and relations as the preferred Arrow export API.

Performance

  • __arrow_c_stream__ on relations — relations now export via the Arrow PyCapsule interface using PhysicalArrowCollector for zero-copy streaming.
  • Unified Arrow stream scanning via __arrow_c_stream__, with filter pushdown only when pyarrow is present.
  • Arrow schema caching to avoid repeated lookups during scanning.
  • Arrow object type caching to avoid repeated detection.
  • Empty params treated as None for .sql() — avoids unnecessary parameter binding overhead.
  • Simplified GIL management for FetchRow.

Bug Fixes

  • Fixed Python object leak in scalar UDFsPyObject_CallObject return values are now properly stolen to avoid reference count leaks.
  • Fixed reference cycle between connections and relations that could prevent garbage collection.
  • Relations now hold a reference to their connection, preventing premature connection closure.
  • Fixed fsspec race condition in the Python filesystem implementation.
  • Fixed numeric conversion logic — improved handling of large integers (fallback to VARCHAR) and UNION types.
  • pyarrow.dataset import is now optional — no longer fails if pyarrow is installed without the dataset module.
  • Thrown a reasonable error when an Arrow array stream has already been consumed.

Build & Packaging

  • jemalloc enabled on Linux x86_64 only (aligned with DuckDB core), removed as a separately bundled extension.
  • MSVC runtime linked statically on Windows — eliminates the VS2019 workaround from duckdb/duckdb#17991.
Loading
keen85 reacted with thumbs up emoji danilo-css reacted with heart emoji danilo-css, djouallah, and eyayaw reacted with rocket emoji
4 people reacted

v1.4.4 Bugfix Release

26 Jan 12:46
@evertlammerts evertlammerts
a12f36c
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

DuckDB core v1.4.4 Changelog: duckdb/duckdb@v1.4.3...v1.4.4

What's Changed in the Python Extension

Full Changelog: v1.4.3...v1.4.4

Contributors

evertlammerts
Loading

Python DuckDB v1.4.3

09 Dec 12:51
@evertlammerts evertlammerts
49da1d7
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.4.2...v1.4.3

Contributors

evertlammerts, nicornk, and 2 other contributors
Loading
danilo-css and crimsonread reacted with heart emoji
2 people reacted

Python DuckDB v1.4.2

12 Nov 13:20
@evertlammerts evertlammerts
70380a1
This commit was signed with the committer’s verified signature.
evertlammerts Evert Lammerts
GPG key ID: 9BFF339D1FDBF8ED
Verified
Learn about vigilant mode.

Choose a tag to compare

This is a bug fix release for various issues discovered after we released v1.4.1.

Also see the DuckDB v1.4.2 Changelog.

What's Changed

Full Changelog: v1.4.1...v1.4.2

Contributors

evertlammerts, J-Meyers, and henryharbeck
Loading
danilo-css reacted with thumbs up emoji djouallah, 5j9, and henryharbeck reacted with hooray emoji
4 people reacted

AltStyle によって変換されたページ (->オリジナル) /