Draft
Conversation
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-16 04:22:21 - DuckDB SHA: 5b03faf8a62ecb64a777753df7e83d5d75c3c9b2 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20255977636
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-17 07:19:57 - DuckDB SHA: 91d691a90831e79381c2b5c457cc6dd70a0d5ea2 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20294357979
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-18 06:11:31 - DuckDB SHA: 7f217607e498301fd6aac0a623e893419fb14ae5 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20327398615
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-19 05:49:41 - DuckDB SHA: 1c87e80fdc53ba213ab19d7e21bfff7087d8306c - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20360777362
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-21 05:51:06 - DuckDB SHA: 5a334c23dadba0f24322ce609dc0f15bc52c41a8 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20405272017
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-23 06:25:00 - DuckDB SHA: 4713d0549e055683305a3083791b3b53061c0b01 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20452804225
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2025-12-25 05:47:57 - DuckDB SHA: 0761d5cc7a033d041ad5514a18642a60cb0cb392 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20499606323
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2026-01-01 06:26:22 - DuckDB SHA: de5283b5b985cc239904f5404925521bf09aba1d - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20633600560
When allowMissingColumns=True, the method now correctly handles missing columns from both the left and right DataFrames by: - Adding missing columns from the right DataFrame to the left as NULL - Ensuring all columns from the left DataFrame are present in the right - Properly aligning column order to match Spark's behavior This ensures the union result contains all columns from both DataFrames, with NULL values where columns are missing, matching PySpark behavior.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2026-01-05 06:03:40 - DuckDB SHA: a5c128a833f0842f276751130c5743be43f3a345 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20706240602
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2026-01-06 08:01:39 - DuckDB SHA: 686f25a362e562bb6acc51c59f91a951cdd2668b - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20741534318
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2026-01-07 06:45:56 - DuckDB SHA: acc36fbe6e1417df3968c00ec35aaf01821467e2 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20772622060
Bump duckdb submodule: - Target branch: v1.4-andium - Date: 2026-01-08 07:16:56 - DuckDB SHA: 908d3eb2815c8d96a5a6e7d8f8b7aafcb52a76ad - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/20808339694
Bump duckdb submodule: - Target branch: v1.5-variegata - Date: 2026-02-19 07:26:40 - DuckDB SHA: ef7a5a8c3090204407d4227584ae32019ae43066 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/22171919332
oneliner to get rid of global state
This translates DuckDB filters into Polars expressions and pushes them into the lazy plan before collection, so only matching rows are materialized. Column projections are applied via table.select() on the resulting Arrow table.
…pure.Expression.isin method (duckdb#335) Continued from duckdb#73 Null handling seems to work fine, afaics. We are using [`Expression.isin()`](https://arrow.apache.org/docs/python/generated/pyarrow.dataset.Expression.html#pyarrow.dataset.Expression.isin), which does not have a `skipp_nulls` kwarg. It uses the same default semantics as [`pyarrow.compute.is_in`](https://arrow.apache.org/docs/python/generated/pyarrow.compute.is_in.html#pyarrow.compute.is_in), which is `skip_nulls = False`. This is not exactly the same as duckdb's semantics, because DuckDB will not return NULL values even if NULL is in the IN list: ``` D select * from VALUES(1), (2), (3), (NULL) as t(myint) where myint in (2, NULL); ┌───────┐ │ myint │ │ int32 │ ├───────┤ │ 2 │ └───────┘ ``` But this is no big deal. We might let more rows through than is needed, but duckdb will filter them out anyway. Also see the test.
Bump duckdb submodule: - Target branch: v1.5-variegata - Date: 2026-02-20 08:48:35 - DuckDB SHA: 8b06a9a8545c346806e66fa9a9f11902114eaa01 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/22216832481
Bump duckdb submodule: - Target branch: v1.5-variegata - Date: 2026-02-24 05:19:23 - DuckDB SHA: d66b932e8e5e784d954f08624eb3a867c9df6407 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/22337228637
Bump duckdb submodule: - Target branch: v1.5-variegata - Date: 2026-02-25 07:25:25 - DuckDB SHA: 4213f2bae35fd8790c0d0551c4d24246a039a0c8 - Trigger: https://github.com/duckdb/duckdb-python/actions/runs/22385989865
…b#342) Fixes duckdb#137 This uses `PhysicalArrowCollector` to support __arrow_c_stream__ on relations without having to materialize into duckdb native format first. Note that we can't use `ResultArrowArrayStreamWrapper` because it calls `TryFetchChunk`, which isn't implemented on `ArrowQueryResult`, so we have our own lightweight wrapper here.
- added Literal for DuckDBPyRelation.join "how" argument possible choices
… syntax (duckdb#345) This small PR focus on: 1) new Literal type for DuckDBPyRelation.join "how" argument, according to the following documentation: https://duckdb.org/docs/stable/clients/python/relational_api#join This will provide autocomplete and an immediate overview of the supported options. 2) Replacement of all deprecated 3.9 typing.Union and typing.List usages by their modern counterparts, standardizing this across the file (sometimes it was the old syntax, sometimes the modern one). I wanted to keep this separated from my next PR who will focus on the Expressions inputs typing, to keep them focused and make review easier (since this one modify lines scattered across the file.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.