Skip to content

Conversation

@Dtenwolde
Copy link
Collaborator

No description provided.

Mytherin and others added 30 commits November 10, 2025 16:46
This PR bumps the following extensions:
- `delta` from `0747c23791` to `6515bb2560`
- `ducklake` from `022cfb1373` to `77f2512a67`
- `httpfs` from `b80c680f86` to `041a782b0b`
…lection operations (duckdb#19718)

Fixes duckdb#19700

This probably should be maintained during the actual select - but for
now just sorting it afterwards solves the issue.
…b#19713)

The `PersistentColumnData` constructor asserts that the pointers aren't
empty.
This assertion will fail if we try to serialize the child of a list, if
all lists are empty (as the child will be entirely empty then)

Backported fix for problem found by: duckdb#19674
This allow explicit re-initialization of specific parts of HTTPClient(s)

This diff would allow patterns such reusing partially constructed (but
properly re-initialized) HTTPClient objects

```c++
struct CrossQueryState {
    // in some state kept around
    unique_ptr<HTTPClient>& client;
};

void SomeFunction() {
    // ...
    http_util.Request(get_request, client);
    // some more logic, same query
    http_util.Request(get_request, client);
}
void SomeOtherFunction() {
    // Re-initialize part of the client, given some settings might have changed
    auto http_params = HTTPParams(http_util)
    client->Initialize(http_params);
    // ...
    http_util.Request(get_request, client);
    // some more logic, same query
    http_util.Request(get_request, client);
}
```

Note that PR is fully opt-in from users, while if you implement a
file-system abstraction inheriting from HTTPClient you should get a
compiler error pointing to implementing the relevant function.
…9734)

Currently `CALL enable_logging('http');` would succeed, but then select
an empty subset of the available logs (`http` != `HTTP`), due to a quirk
in the code. This PR fixes that up.
…that the child must have columns, which doenst have to be true if the expression is a constant
Closes duckdb#19645

The issue is that during pipeline verification we compare all the
operators across pipelines and ensure that their equality is reflexive
(which is kind of a strange check actually), but in the case of table
scans we only compare the normal table function callback pointer. In the
MRE in the linked issue, the pipeline contains a UNNEST and a RANGE,
which are both table-in-out functions, but not _normal_ table functions,
so the function pointer(s) are null on both sides and they are assumed
to be equal.

I've fixed it by actually implementing the `==` and `!=` operates for
`TableFunction`s that compare all the properties, similar to how its
done for `ScalarFunction`.
This PR supersedes duckdb#19625 and fixes
duckdb#19313

We now create a LogicalAggregate even if we only have a HAVING clause,
no aggregates, no group by. This matches PostgreSQL behavior.
kryonix and others added 29 commits December 3, 2025 18:25
… side have correlation

Kind of a weird case, maybe we should leave the join decorrelation early
here. Will have to investigate some time.
* Reverse the steaming/blocking window operator generation order.
…its::Min so that stats are initialized to -infinity for floating points (duckdb#20039)

Fix duckdb#20014
This change adds `opt_in_archs` argument to the `Extensions.yml`
workflow and passes it down to `_extension_distribution.yml`.

The default value is set to `windows_arm64;` with the intention to keep
it there (if it will work correctly and will not cause problems) to have
Windows ARM64 extension builds enabled by default.

This change only enables it for Main extensions. Rust-based extensions
(`delta`) can be added later - it requires Python wheel re-build (for
`configure` step, until `windows_arm64` binary wheel is available). It
works on CI, but takes additional 35 mins.
Mark joins without correlation on the left side could not be handled
correctly without this PR. Information regarding the correlated columns
was simply lost, which could lead to wrong query behavior. This PR fixes
this and introduces correct decorrelation of mark joins without
correlation on the left side.

----

Fix: duckdb#19504
Bugfix for duckdb#19975

Propagate gate status in Node4::DeleteChild, since Prefix::Concat logic
depends on both the prev_node4 gate status (was the node4 being freed a
gate node), as well as the overall gate status (did we enter through a
gate at some point earlier). The latter was not being propagated
correctly, and node compression logic for nested ARTs storing rowids
depends on this, since we do not need to maintain prefix chains, as they
are implicit in the rowid's.

Unfortunately it is not possible to create a minimal test for this
scenario, however once
duckdblabs/duckdb-internal#6083 is solved,
there is a large reproducer for this scenario that I downloaded from the
person who opened this issue (and the data/sql file is not confidential,
so can be used).

Thank you @taniabogatsch for dealing the final blow to this bug!
This PR bumps the following extensions:
- `httpfs` from `8ff2283fb1` to `9c7d34977b`
During CTE decorrelation, the `RewriteCTEScan` class adds correlated
columns (in case of multiple dependent joins) to child dependent joins.
However, this is only required for recursive CTEs.

----

Fix: duckdb#20016
@Dtenwolde Dtenwolde merged commit e3037c2 into v1.4-andium Dec 9, 2025
30 of 39 checks passed
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.