Fix: issue-3682: run store.plan() only when we need it. #3691
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.
What this PR does / why we need it:
This line of code:
registry_diff, infra_diff, new_infra = store.plan(repo)
is always executed while we run "feast apply". It will call the validate() method by default which makes the option "-skip-source-validation" invalid.
Based on the original code logic, I change it to run it only when it is required. The requirement comes from:
if store._should_use_plan():
In the implementation of _should_use_plan():
def _should_use_plan(self): """Returns True if plan and _apply_diffs should be used, False otherwise.""" # Currently only the local provider with sqlite online store supports plan and _apply_diffs. return self.config.provider == "local" and ( self.config.online_store and self.config.online_store.type == "sqlite" )
the "store._should_use_plan()" return True while the provider is "local" and the online store is "sqlite".
With this PR, we can alleviate the issue 4682. If a user wants to do local development, he/she may want to change the online store to a different one other than "SQLite", the action of double call "store.validate()" can be avoided.
Which issue(s) this PR fixes:
Fixes # 3682