Allowing Column Type Changes with Ordered Updates
This week I worked on addressing issue #2925, which concerns changing column types with := when i is an ordering call.
Previously, when a non-missing i was provided, the operation was treated as a subset update. This prevented column type changes, even when i represented a full-column reordering.
To resolve this, I submitted PR #7879, which identifies order() or forder() calls in i as full-column permutations. This allows column type changes during assignment when the operation effectively reorders the entire table.
The implementation includes:
- Detection of
order()andforder()calls used ini. - Recognition of these calls as full-column permutations rather than subset updates.
- Support for column type changes during
:=assignment for full-column reorderings. - Preservation of the existing behavior for regular subset updates.
- Regression tests covering the new behavior.
This change allows ordered updates to behave more naturally while maintaining the existing safeguards for genuine subset assignments.
Working Through Existing Issues
Alongside this fix, I focused on working through previously opened issues and contributing fixes aimed at moving them toward resolution.
I also continued addressing review feedback from maintainers and refining the associated implementation and regression tests based on their suggestions. This helped improve both the correctness of the changes and the coverage of the affected functionality.
Looking Ahead
Next, I will continue working through open issues, addressing review feedback on the existing pull requests, and refining tests and documentation to ensure the changes are robust and consistent with the existing data.table behavior.