Skip to content

Fix silent data loss in add_index for unsupported dtypes#440

Open
Tanmay-24 wants to merge 1 commit into
google:mainfrom
Tanmay-24:fix/add-index-silent-failure
Open

Fix silent data loss in add_index for unsupported dtypes#440
Tanmay-24 wants to merge 1 commit into
google:mainfrom
Tanmay-24:fix/add-index-silent-failure

Conversation

@Tanmay-24

Copy link
Copy Markdown

Summary

Fixes #437

The add_index() operation was silently returning 0 events when the index column had an unsupported numpy dtype (e.g., unicode strings with dtype kind 'U').

Root Cause

In add_index.cc lines 221-228, when a numpy array's dtype kind was not 'S' (bytes), the function would return without processing the feature OR raising an error, leaving the group accumulator empty.

Fix

Moved the return statement inside the if (dtype().kind() == 'S') block so that unsupported array dtypes fall through to the error handler that throws std::invalid_argument("Non supported feature type").

@google-cla

google-cla Bot commented Jan 11, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

  The add_index C++ implementation was silently returning when
  encountering numpy arrays with unsupported dtypes (like float64),
  causing 0 events in the output instead of raising an error.

  Moved the return statement inside the 'S' dtype branch so unsupported
  array types fall through to the error handler.

  Added regression test for float column index.

  Fixes google#437
@Tanmay-24

Tanmay-24 commented Jan 11, 2026

Copy link
Copy Markdown
Author

@rstz can you please check? Thanks.
cc @achoum @javiber

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EventSet.add_index clears events

1 participant