yuqi1129 opened a new pull request, #14682:
URL: https://github.com/apache/gravitino/pull/14682

   ### What changes were proposed in this pull request?
   
   Normalize metadata object identifiers before TagManager reads or updates tag 
relations. Apply catalog naming capabilities to schema and object names, 
resolve physical table names for tables and column parents, and preserve 
Gravitino-owned Semantic Model names. Existence checks still use the original 
request so quoted names are not normalized twice.
   
   Each operation on a supported non-catalog object loads naming capabilities 
after the existence check; table and column operations also repeat physical 
table-name resolution. Catalog cache misses can reload the connector; 
connectors whose resolver reads the source can add a source read. Resolution 
failures propagate before tag relations are changed. The separate 
policy-inheritance lookup in `EffectiveTagResolver` is outside this change.
   
   ### Why are the changes needed?
   
   An object can pass the catalog's normalized existence check but fail the 
relation-store lookup because TagManager uses the original spelling. The same 
mismatch affects tag association and disassociation, including value 
assignments.
   
   Fixes #14681
   
   ### Does this PR introduce _any_ user-facing change?
   
   Metadata-object tag operations accept equivalent object names according to 
the catalog's existing naming rules. Case-sensitive object names, tag names, 
and tag values are preserved. No API, configuration, or storage-schema changes.
   
   ### How was this patch tested?
   
   - Regression tests exercise real H2 relation storage for case-insensitive 
names, custom uppercase normalization, quoted names, physical table-name 
resolution, Semantic Model naming, and all ten tag-supported metadata object 
types. Ten regression cases fail before the fix.
   - 96 tests passed across eight explicitly selected classes via 
`:core:coreUnitTest`: TagManager, PolicyManager, EffectiveTagResolver, 
TagHookDispatcher, PolicyTagDispatcherChain, CapabilityHelpers, 
TableNormalizeDispatcher, and MetadataObjectUtil.
   - `:core:spotlessApply` and formatting checks passed. Tests use embedded H2; 
live connector and Docker-backed database tests were not run.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to