Fix: add gateway name to model cache identifier #2987
Merged
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.
Model definitions are cached by the SQLMesh loader. Currently, the cached model ID consists of the latest time any project files were modified, a fingerprint of the context config object, and the context's default catalog.
If a model uses the
@gateway
macro variable, its value will be stored in the model's python environment and included in the cache. If the project is run with a different gateway, a cache hit can occur with the wrong gateway value being rendered into the model.This PR fixes this by adding the gateway name to the model cache ID.
Implications:
@gateway
macro variable.@gateway
macro variable is used. That approach will result in unnecessary cache hits when the gateway has changed and is used in the model.