dependabot[bot] opened a new pull request, #3139: URL: https://github.com/apache/iceberg-python/pull/3139
Bumps [duckdb](https://github.com/duckdb/duckdb-python) from 1.4.4 to 1.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/duckdb/duckdb-python/releases">duckdb's releases</a>.</em></p> <blockquote> <h2>DuckDB Python 1.5.0 "Variegata"</h2> <p>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 <a href="https://github.com/duckdb/duckdb/releases/tag/v1.5.0">DuckDB release notes</a> and <a href="https://duckdb.org/2026/03/09/announcing-duckdb-150.html">the blogpost</a>.</p> <h3>Breaking Changes</h3> <ul> <li><strong>Dropped Python 3.9 support.</strong> The minimum supported version is now Python 3.10.</li> <li><strong>Removed deprecated <code>duckdb.typing</code> and <code>duckdb.functional</code> modules.</strong> These were deprecated in 1.4.0. Use <code>duckdb.sqltypes</code> and <code>duckdb.func</code> instead.</li> <li><strong>Renamed <code>column</code> parameter to <code>expression</code></strong> in relational API functions (e.g., <code>min</code>, <code>max</code>, <code>sum</code>, <code>mean</code>, etc.) to better reflect that these accept expressions, not just column names.</li> <li><strong>Deprecated <code>fetch_arrow_table()</code> and <code>fetch_record_batch()</code></strong> on connections and relations. Use the new <code>to_arrow_table()</code> and <code>to_arrow_reader()</code> methods instead.</li> </ul> <h3>New Features</h3> <ul> <li><strong>Polars LazyFrame projection and filter pushdown.</strong> DuckDB can now push down projections and filters when scanning Polars LazyFrames, including support for cast nodes and unstrict casts.</li> <li><strong>Polars Int128 / UInt128 support.</strong></li> <li><strong>VARIANT type support</strong> — Python conversion, NumPy array wrapping, and type stubs.</li> <li><strong>TIME_NS type support</strong> — nanosecond-precision time values across Python, NumPy, and Spark type systems.</li> <li><strong>Profiling API</strong> — new <code>get_profiling_info()</code> and <code>get_profiling_json()</code> methods on connections, plus a refactored <code>query_graph</code> module with improved HTML visualization (dark mode, expandable phases, depth).</li> <li><strong><code>to_arrow_table()</code> and <code>to_arrow_reader()</code></strong> — new methods on connections and relations as the preferred Arrow export API.</li> </ul> <h3>Performance</h3> <ul> <li><strong><code>__arrow_c_stream__</code> on relations</strong> — relations now export via the Arrow PyCapsule interface using <code>PhysicalArrowCollector</code> for zero-copy streaming.</li> <li><strong>Unified Arrow stream scanning</strong> via <code>__arrow_c_stream__</code>, with filter pushdown only when pyarrow is present.</li> <li><strong>Arrow schema caching</strong> to avoid repeated lookups during scanning.</li> <li><strong>Arrow object type caching</strong> to avoid repeated detection.</li> <li><strong>Empty params treated as None for <code>.sql()</code></strong> — avoids unnecessary parameter binding overhead.</li> <li><strong>Simplified GIL management</strong> for <code>FetchRow</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>Fixed Python object leak in scalar UDFs</strong> — <code>PyObject_CallObject</code> return values are now properly stolen to avoid reference count leaks.</li> <li><strong>Fixed reference cycle</strong> between connections and relations that could prevent garbage collection.</li> <li><strong>Relations now hold a reference to their connection</strong>, preventing premature connection closure.</li> <li><strong>Fixed fsspec race condition</strong> in the Python filesystem implementation.</li> <li><strong>Fixed numeric conversion logic</strong> — improved handling of large integers (fallback to VARCHAR) and UNION types.</li> <li><strong><code>pyarrow.dataset</code> import is now optional</strong> — no longer fails if pyarrow is installed without the dataset module.</li> <li><strong>Thrown a reasonable error</strong> when an Arrow array stream has already been consumed.</li> </ul> <h3>Build & Packaging</h3> <ul> <li><strong>jemalloc enabled on Linux x86_64 only</strong> (aligned with DuckDB core), removed as a separately bundled extension.</li> <li><strong>MSVC runtime linked statically</strong> on Windows — eliminates the VS2019 workaround from <a href="https://redirect.github.com/duckdb/duckdb/issues/17991">duckdb/duckdb#17991</a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/duckdb/duckdb-python/commit/87e7928a47eced6b72d6fc95c2d860f769390038"><code>87e7928</code></a> pin release</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/a85f289a46d1b48a41c78f0c0a5151d8386aa11f"><code>a85f289</code></a> [duckdb-labs bot] Bump DuckDB submodule (<a href="https://redirect.github.com/duckdb/duckdb-python/issues/365">#365</a>)</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/e0ebd50b2a94e093ca7cb0b77504b503e0968719"><code>e0ebd50</code></a> Bump submodule</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/2955da9102259c6cd924d38afff342b6d63f8cae"><code>2955da9</code></a> [duckdb-labs bot] Bump DuckDB submodule (<a href="https://redirect.github.com/duckdb/duckdb-python/issues/360">#360</a>)</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/7ca17e51d2b1c8d3bb891148022d3e4847389276"><code>7ca17e5</code></a> Bump submodule</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/fb7cee85510e7bc01078fa12e29c2e24b64cbff7"><code>fb7cee8</code></a> Pin submodule to release hash</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/6b092b00b94bf46c1671829255c5c7bc115214cd"><code>6b092b0</code></a> [duckdb-labs bot] Bump DuckDB submodule (<a href="https://redirect.github.com/duckdb/duckdb-python/issues/355">#355</a>)</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/3e7a6d3ea62d2d28a092f0ba48d91a809f268f44"><code>3e7a6d3</code></a> Bump submodule</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/55013e18c8e29e5ee23e38cc9eddf54351808d7f"><code>55013e1</code></a> Allow strict casts of literals only in polars lazyframe pushdown (<a href="https://redirect.github.com/duckdb/duckdb-python/issues/348">#348</a>)</li> <li><a href="https://github.com/duckdb/duckdb-python/commit/b8d19d0688a0ec31db16c82bf353fba5cda58dcd"><code>b8d19d0</code></a> Fix failing tests</li> <li>Additional commits viewable in <a href="https://github.com/duckdb/duckdb-python/compare/v1.4.4...v1.5.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
