Skip to content

Conversation

@findepi
Copy link

@findepi findepi commented Aug 13, 2025

No description provided.

kosiew and others added 7 commits August 13, 2025 14:19
…ing ORDER BY clause (apache#16257)

* Add order by clause to limit query for consistent results

* test: update explain plan

(cherry picked from commit 4cf1148)
Unclear why it doesn't work.
* Fix WindowFrame::new with order_by

Before the change, the frame constructed with
`WindowFrame::new(Some(true))` would not be fully functional, because
of the bound being of unexpected type.

* Change assert helper param order

Putting expected data second allows for natural inlining of expected
values.

(cherry picked from commit 20a723b)
Update `find_window_exprs` signature to be as flexible as
`find_aggregate_exprs`, letting the caller avoid Expr clones.

(cherry picked from commit 4a4ffd7)
…#97)

* cherry pick the array agg fix to support multiple sorted aggregations

* Test fix

* Fix some goldies

* Fix some more goldies

* Fix some more goldies
* Implement equals for stateful functions

Default implementation of `ScalarUDFImpl::equals`,
`AggregateUDFImpl::equals` and `WindowUDFImpl::equals` is correct for
stateless functions and those which only state is the `Signature`, which
is most of the functions.

This implements `equals` and `hash_value` for functions that have state
other than `Signature` object.

This fixes correctness issues which could occur when such stateful
functions are used together in one query.

* downgrade for MSRV

* Improve doc

* Update default UDF:: equals to compare aliases too

* Update default UDF:: equals to compare type too (‼️)

* remove now-obsoleted UDF equals/hash customizations

remove these which compare signature, aliases, as the default handles
these now

* remove equals impl which compares name, signature -- default does that

* cleanup imports

(cherry picked from commit afd8235)
Extract AggregateUDFImpl method that have complex implementations. This
makes it feasible to implement that trait with
`#[warn(clippy::missing_trait_methods)]` Clippy check enabled. That
check is very helpful when the type implementing `AggregateUDFImpl`
delegates many methods to another `AggregateUDFImpl` implementation and
therefore does not want to unconsciously rely on default implementation.
Sadly, Rust does not allow explicitly delegating to trait method's
default implementation. Extracting the logic to standalone functions
works around that limitation.
@findepi findepi merged commit 489f45d into sdf/48 Sep 5, 2025
53 checks passed
@findepi findepi deleted the findepi/sdf/48 branch September 5, 2025 06:26
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.

5 participants