GeezerVison is showing github.com — feat: Pass requested On-Demand Feature Views to Provider `get_historical_features` by Shizoqua · Pull Request #5803 · feast-dev/feast
Conversation
Shizoqua
commented
Dec 31, 2025
•
edited by devin-ai-integration
Bot
Loading
Uh oh!
There was an error while loading. Please reload this page.
Summary
This PR fixes an interface/plumbing gap in historical retrieval by explicitly passing the requested On-Demand Feature Views (ODFVs) from FeatureStore.get_historical_features() into the provider’s get_historical_features() implementation.
What changed
- Updated Provider.get_historical_features(...) signature to include:
on_demand_feature_views: List[OnDemandFeatureView]
- Updated FeatureStore.get_historical_features() to pass the computed on_demand_feature_views list into the provider call.
- Updated PassthroughProvider.get_historical_features() to accept the new argument (ignored for passthrough delegation).
- Updated the test FooProvider implementation to match the new provider interface.
- Added a unit test that asserts the provider receives the expected ODFVs list:
- sdk/python/tests/unit/test_feature_store_passes_odfvs_to_provider.py
Why
Providers may need the explicit set of requested ODFVs to correctly handle or route historical retrieval logic. Previously, only the combined feature_views list was passed, which made it awkward/impossible for providers to distinguish which ODFVs were requested.
Testing
- Added unit test test_feature_store_passes_on_demand_feature_views_to_provider.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Shizoqua
changed the title
Feat: Pass requested On-Demand Feature Views to Provider get_historical_features
Feat: Pass requested On-Demand Feature Views
Dec 31, 2025
Shizoqua
changed the title
Feat: Pass requested On-Demand Feature Views
Feat: Pass requested On-Demand Feature Views from FeatureStore.get_historical_features()
Dec 31, 2025
Shizoqua
changed the title
Feat: Pass requested On-Demand Feature Views from FeatureStore.get_historical_features()
Feat: Pass requested On-Demand Feature Views to Provider get_historical_features
Dec 31, 2025
Shizoqua
changed the title
Feat: Pass requested On-Demand Feature Views to Provider get_historical_features
feat: Pass requested On-Demand Feature Views to Provider get_historical_features
Jan 1, 2026
|
Good day @franciscojavierarceo
I would appreciate it if my PR is looked at and reviewed if there is any comment you'd want to give in relations to the PR would be highly appreciated.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
1 similar comment
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Can you explain why you need this argument?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Can you explain why you need this argument?
The new on_demand_feature_views argument is needed because FeatureStore.get_historical_features() already resolves which OnDemandFeatureViews are actually requested (via _group_feature_refs), but historically we were not passing that information to the Provider.
Without this argument, the Provider only sees feature_views + feature_refs and has to:
- either re-resolve ODFVs from the feature refs (i.e. duplicating logic), or
- conservatively treat ODFVs as part of the full graph and potentially execute transformations for ODFVs that aren’t requested, which can add unnecessary joins/transforms and overhead.
Passing on_demand_feature_views makes the API explicit so provider implementations that can optimize or need this for correct planning like compute-engine based retrieval can do so without re-deriving it.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Can you explain why you need this argument?
The new on_demand_feature_views argument is needed because FeatureStore.get_historical_features() already resolves which OnDemandFeatureViews are actually requested (via _group_feature_refs), but historically we were not passing that information to the Provider. Without this argument, the Provider only sees feature_views + feature_refs and has to:
- either re-resolve ODFVs from the feature refs (i.e. duplicating logic), or
- conservatively treat ODFVs as part of the full graph and potentially execute transformations for ODFVs that aren’t requested, which can add unnecessary joins/transforms and overhead.
Passing on_demand_feature_views makes the API explicit so provider implementations that can optimize or need this for correct planning like compute-engine based retrieval can do so without re-deriving it.
Although I don’t fully support this ad hoc change, since it’s not user-facing, I’m okay with approving it. Could you please add a TODO and create a follow-up issue to flag it for a proper long-term fix?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Although I don’t fully support this ad hoc change, since it’s not user-facing, I’m okay with approving it. Could you please add a TODO and create a follow-up issue to flag it for a proper long-term fix?
Okay, I'm on it now
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Shizoqua
commented
Jan 22, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Although I don’t fully support this ad hoc change, since it’s not user-facing, I’m okay with approving it. Could you please add a TODO and create a follow-up issue to flag it for a proper long-term fix?
Added a TODO in FeatureStore.get_historical_features to flag this as an interim interface change. I’ve also open a follow-up issue to track a proper long-term cleanup of the historical retrieval Provider API (request object / clearer contract) and will link it here once created.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ Devin Review: No Issues Found
Devin Review analyzed this PR and found no potential bugs to report.
View in Devin Review to see 4 additional flags.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Shizoqua
commented
Jan 31, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Hello,
Good day
Please can my PR get reviewed?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This branch has not been deployed
No deployments
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|