Skip to content
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

feat: add multi-column support to UpdateBy RollingFormula() operator #6143

Merged
merged 17 commits into from
Nov 1, 2024

Conversation

lbooker42
Copy link
Contributor

No description provided.

@lbooker42 lbooker42 added this to the 0.37.0 milestone Sep 26, 2024
@lbooker42 lbooker42 self-assigned this Sep 26, 2024
Copy link
Contributor

@malhotrashivam malhotrashivam left a comment

Choose a reason for hiding this comment

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

Code review Part 1: All replicated files and files with smaller changes

Comment on lines 32 to 33
// noinspection unchecked
result = new ObjectRingBufferVectorWrapper<T>((ObjectRingBuffer<T>) buffer, (Class<T>) componentType);
Copy link
Contributor

Choose a reason for hiding this comment

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

Please check to get full test coverage.

@lbooker42 lbooker42 changed the title Add multi-column support to UpdateBy RollingFormula() operator feat: add multi-column support to UpdateBy RollingFormula() operator Oct 9, 2024
@lbooker42
Copy link
Contributor Author

lbooker42 commented Oct 17, 2024

Python support for this is incomplete, need to update function signatures and documentation, plus include examples.
Have added this support in the latest commit.

Copy link
Member

@rcaudy rcaudy left a comment

Choose a reason for hiding this comment

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

Looking pretty good. We can take a more thorough/complete pass next week if needed, but I don't want to duplicate effort too much. Do want to look at things after refactoring to rely more on SelectColumn and Selectable.

@deephaven deephaven deleted a comment from github-actions bot Oct 23, 2024
Copy link
Member

@rcaudy rcaudy left a comment

Choose a reason for hiding this comment

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

Just need to look at the operator code (base and multi). Deferring Python.

vectorColumnNameMap = new HashMap<>();
columnDefinitionMap.forEach((key, value) -> {
final ColumnDefinition<?> columnDef = ColumnDefinition.fromGenericType(
key, VectorFactory.forElementType(value.getDataType()).vectorType());
Copy link
Member

Choose a reason for hiding this comment

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

Add component type (that is, value.getDataType()). I wonder if that means we need more testing for Object inputs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is done, thinking about add'l testing

Copy link
Member

@rcaudy rcaudy left a comment

Choose a reason for hiding this comment

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

Pretty close to mergeable. I kind of wonder if we should be deleting the single-input implementation and always using the new one.


@Override
public void applyOutputShift(@NotNull final RowSet subRowSetToShift, final long delta) {
((SparseArrayColumnSource<?>) outputSource).shift(subRowSetToShift, delta);
Copy link
Member

Choose a reason for hiding this comment

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

This may break if you have a reinterpret. Be sure to test shifts + reinterpret.
I think you're already OK... but a test might help prove it.

rcaudy
rcaudy previously approved these changes Oct 31, 2024
@lbooker42 lbooker42 merged commit c9bb557 into deephaven:main Nov 1, 2024
17 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Nov 1, 2024
@deephaven-internal
Copy link
Contributor

Labels indicate documentation is required. Issues for documentation have been opened:

Community: deephaven/deephaven-docs-community#352

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants