Skip to content

feat: DH-19044: implement serial Filter API #6858

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

nbauernfeind
Copy link
Member

No description provided.

@nbauernfeind nbauernfeind added this to the 0.40.0 milestone May 9, 2025
@nbauernfeind nbauernfeind requested a review from cpwright May 9, 2025 00:05
@nbauernfeind nbauernfeind self-assigned this May 9, 2025
@nbauernfeind nbauernfeind added core Core development tasks DocumentationNeeded NoReleaseNotesNeeded No release notes are needed. labels May 9, 2025
* <ul>
* <li>Concurrency impact: The expression will never be invoked concurrently with itself.</li>
* <li>Intra-expression ordering impact: Rows are evaluated sequentially in row set order.</li>
* <li>Inter-expression ordering impact: Acts as an absolute reordering barrier, ensuring that no parts of a where
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not clear to me that there should be any inter-expression ordering impact for serial. If you wanted the barrier, you could express it as a barrier; but if you have two expressions that are both serial there is no reason we could not at some point choose to evaluate them on separate threads.

* @return a new instance of FilterSerial
*/
public static FilterSerial of(Filter filter) {
// Optionally, if the filter is already a FilterSerial, it could be returned directly.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might as well do the optimization if we wrote a comment for it.

/**
* A serial wrapper for a {@link WhereFilter} that enforces serial (non-parallel) execution.
*/
public class WhereFilterSerialImpl
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An abstract base class shared between this and io.deephaven.engine.table.impl.select.WhereFilterInvertedImpl would make sense (really for anything that is a WhereFilter wrapping another WhereFilter which we might need more of later).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Core development tasks DocumentationNeeded NoReleaseNotesNeeded No release notes are needed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants