GSoC 11th Week Progress

Improving Type Changes in `:=` with Ordered Updates

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() and forder() calls used in i.
  • 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.

Tags: gsoc2026
Share: