Skip to content

fix: Preserve entity row order in precomputed reads - #6806

Open
JodeZer wants to merge 1 commit into
feast-dev:masterfrom
JodeZer:fix/precomputed-entity-row-order
Open

fix: Preserve entity row order in precomputed reads#6806
JodeZer wants to merge 1 commit into
feast-dev:masterfrom
JodeZer:fix/precomputed-entity-row-order

Conversation

@JodeZer

@JodeZer JodeZer commented Sep 1, 2026

Copy link
Copy Markdown

What this PR does / why we need it:

Precomputed online retrieval deduplicates and sorts entity keys before reading their vectors. The fast path previously wrote those vectors into response rows by enumeration order instead of mapping them back to the original request rows. Unsorted requests could therefore receive another entity's features, and repeated entities were not fanned out to every requested row.

This is a user-facing correctness fix. It passes the entity-to-request-row mapping into the precomputed fast path and scatters values, field statuses, and timestamps back to their original positions while preserving the existing deduplicated read and parse behavior.

Both synchronous and asynchronous public get_online_features paths are covered.

Which issue(s) this PR fixes:

Fixes #6805

The affected precomputed path was introduced by #6463 for #6185.

Checks

  • I've made sure the tests are passing.
  • My commits are signed off (git commit -s)
  • My PR title follows conventional commits format

Testing Strategy

  • Unit tests
  • Integration tests
  • Manual tests
  • Testing is not required for this change

Successful checks:

  • Precomputed feature vector unit file: 62 passed, including sync and async public retrieval with unordered and duplicate entities.
  • Adjacent unique-entity and async feature-server tests: 5 passed.
  • Full repository lint: Ruff passed for 917 files; mypy passed for 627 source files.
  • Feast pre-commit and pre-push hooks passed.

The full make test-python-unit run completed with 2630 passed and 17 skipped, but exited nonzero with 17 failures and 22 errors unrelated to the changed files. Local failures were confined to existing environment-sensitive areas: SQLite extension loading, CLI repository templates, Docling dependency compatibility, and MongoDB test-container port mapping. All 62 tests in the modified precomputed suite passed within that full run.

Misc

No public API, protobuf, storage schema, or dependency changes.

Release note

Fix precomputed online retrieval to preserve entity input order and duplicate rows.

Signed-off-by: JodeZer <jeffery1993@hotmail.com>
@JodeZer
JodeZer requested review from a team as code owners September 1, 2026 10:08
@JodeZer
JodeZer requested review from franciscojavierarceo, ntkathole and tokoko and removed request for a team September 1, 2026 10:08
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.

Precomputed online retrieval does not preserve entity input order or duplicates

1 participant