Skip to content

Merge v1.5-variegata and fix main build#494

Draft
evertlammerts wants to merge 47 commits into
duckdb:mainfrom
evertlammerts:main_prep
Draft

Merge v1.5-variegata and fix main build#494
evertlammerts wants to merge 47 commits into
duckdb:mainfrom
evertlammerts:main_prep

Conversation

@evertlammerts

Copy link
Copy Markdown
Member

No description provided.

duckdblabs-bot and others added 30 commits May 12, 2026 05:54
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-12 05:54:24
- DuckDB SHA: daef7050ecc5252745dd35961d7923c1efc67204
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/25715407807
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-13 16:12:26
- DuckDB SHA: 252f338be17cb7f2caade6a42cfa1b5fdb6e59e3
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/25807759725
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-15 05:42:25
- DuckDB SHA: 6221d3e3f5d7ae0108cbef9eb9d4d01407315e3a
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/25901694091
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-18 06:23:46
- DuckDB SHA: b25ebaadb665ee38f74b5bbbb309fadc59e096d8
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/26016352509
Fixes duckdb#460 

A bug in the conjunction OR pushdown for pyarrow resulted in a too
restrictive filter if one of the branches couldn't be translated.
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-19 06:22:27
- DuckDB SHA: 3a0db632336be3eb43f8a091a01d305b2d0cd046
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/26079191264
…kdb#462)

Related to duckdb#435 and duckdb#456 

duckdb#435 tries to use the same connection across multiple threads, which is
not supported. Specifically, in this case the result is overwritten and
destroyed concurrently, causing a segfault. This PR fixes the segfault
by synchronising access to the result with a recursive mutex. But note
that connections cannot be used across threads, no matter what.

duckdb#456: we sometimes need to destruct python-managed objects _after_
releasing the GIL. This PR makes sure that we hold on to the GIL during
the destruction of PyRelation and Connection::Close(). Note: I rely on
CI to check whether the fix actually works here...
Fixes duckdb#452 

This makes sure that Polars' CSE wraps the lazyframe in a `CACHE[...]`
in its plan. This way, the lazyframe will only be consumed once.

We've seen this reported more often. The issue with joining a streaming
result against itself is that a result can only be consumed once. One
workaround is using multiple connections, but this only works if duckdb
comes up with a query plan where a result is not referenced against
itself.

As it turns out, Polars allows I/O plugins to register with
[`is_pure`](https://docs.pola.rs/api/python/dev/reference/api/polars.io.plugins.register_io_source.html),
and Polars will de-duplicate them. Afaict, there's not really any
downside. I don't see why anybody would want to treat a streaming result
as not-pure, or what that would mean. I guess we'll see if that
assumption will pass the test of time.
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-19 21:55:33
- DuckDB SHA: 14eca11bd9d4a0de2ea0f078be588a9c1c5b279c
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/26114996465
This PR allows creating relations using read only connections, i.e.
`duckdb.connect(str(db_path), read_only=True)`.
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-28 06:08:41
- DuckDB SHA: 0bf2a03cb1973ac77de3a69c116c7b9f02f733ff
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/26557089319
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-05-29 06:30:32
- DuckDB SHA: 6f4fb97a10c65cce97f7c30d0bdc6844589b3b05
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/26621310532
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-06-03 05:46:59
- DuckDB SHA: ac79ba69fe32d1bd612964daf08d3777837e331d
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/26865426747
duckdblabs-bot and others added 16 commits June 8, 2026 05:44
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-06-08 05:44:12
- DuckDB SHA: a6fce56cf7d2e2c0ca7831b7d8db10413cdb269b
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/27117650655
Fixes duckdb#460 

Remove dynamic predicates from the expression tree. Apart from it being
a panic which is always a bad signal / bug, it's surprising that
`pl.DataFrame.filter` cannot process a `pl.Expr` that polars itself
created.

In any case, this will remove dynamic predicates from the tree and
either produce a pushdown filter fro duckdb, or filter in polars
directly.
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-06-09 04:47:35
- DuckDB SHA: d9e204b353f12e38f36eed420de13e875b90af1d
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/27183709066
Bump duckdb submodule:
- Target branch: v1.5-variegata
- Date: 2026-06-10 05:20:52
- DuckDB SHA: 894e3727d194d72295d10aa971798de10a82e657
- Trigger:
https://github.com/duckdb/duckdb-python/actions/runs/27254183143
…d_parquet/from_parquet (duckdb#489)

This PR makes the first arg of`read_parquet`/`from_parquet` go through
`GetPathLike()` (like `read_csv`/`read_json`) so they accept
`pathlib.Path`, generic `os.PathLike`, `bytes`, file-like objects, and
mixed lists in addition to the existing `str`/`Sequence[str]`.
@evertlammerts evertlammerts changed the title Fix main build Merge v1.5-variegata and fix main build Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants