geyanggang opened a new issue, #13480:
URL: https://github.com/apache/gravitino/issues/13480

   ### What would you like to be improved?
   
   TableNormalizeDispatcher normalizes a table identifier (applying the 
catalog's Capability.normalizeName) before every loadTable, alterTable, 
dropTable, purgeTable, and tableExists. For most catalogs this normalized name 
is exactly what the source stores, so it round-trips fine.
   
   But normalization is not always reversible. When a catalog folds a name (for 
example an unquoted name to a fixed case) while the underlying source also 
allows case-sensitive objects created in a different case, listTables can 
return a physical name that the same normalized-name lookup then fails to find. 
A name Gravitino itself returned from listTables cannot always be passed 
straight back to loadTable/alterTable/dropTable.
   
   There is currently no extension point where a catalog can map a normalized 
identifier back to the name the source physically stores. Adding one lets any 
catalog whose normalization is not reversible make the list → load/alter/drop 
round-trip work, without changing behavior for the catalogs that don't need it.
   
   ### How should we improve?
   
   Add an opt-in, default-identity resolution hook:
   
   - TableCatalog#resolveTableName(NameIdentifier) (api) — default returns the 
identifier unchanged.
   - TableOperation#resolveTableName(String databaseName, String tableName) 
(catalog-jdbc-common) — default identity; JdbcCatalogOperations forwards to it.
   - TableNormalizeDispatcher (core) — after normalization and before 
dispatching, resolve the identifier through this hook, so the resolved 
identifier drives both the catalog call and the entity store key (keeping them 
consistent).
   
   For every catalog that does not override the hook, resolution is a pure 
identity call — no I/O, no behavior change.


-- 
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