-
Notifications
You must be signed in to change notification settings - Fork 85
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
base: main
Are you sure you want to change the base?
Conversation
* <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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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).
No description provided.