refactor(query): Gracefully handle unknown GrantEntry objects in UserGrantSet::from_pb #18400
+10
−2
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.
I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/
Summary
When an older version of the application processes
UserGrantSet
data that containsGrantEntry
objects with newly introducedGrantObject
types, theGrantEntry::from_pb
conversion can fail for those specific entries.This commit modifies the
UserGrantSet::from_pb
function to gracefully handle such scenarios. IfGrantEntry::from_pb
returns an error (e.g., due to an unknownGrantObject
), the error is now logged, and the problematic grant entry is skipped instead of causing the entire conversion to fail.This ensures that users on older versions can still log in and use their available grants, providing better forward compatibility and robustness against evolving data schemas.
Without this, a user attempting to log in with data containing new
GrantObject
types would be prevented from logging in on an older client.Tests
Type of change
This change is