roryqi commented on code in PR #13771:
URL: https://github.com/apache/gravitino/pull/13771#discussion_r4256839051
##########
catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergCatalogCapability.java:
##########
@@ -48,6 +60,21 @@ public CapabilityResult supportsHierarchicalSchema() {
return CapabilityResult.SUPPORTED;
}
+ @Override
+ public CapabilityResult caseSensitiveOnName(Scope scope) {
+ if (hiveBackend) {
+ switch (scope) {
+ case SCHEMA:
+ case TABLE:
Review Comment:
Thanks. This is a real upgrade edge case, but I don't think this PR should
automatically migrate it.
The previous behavior could store a Hive-backed Iceberg registration with
spelling that the backend itself does not preserve. There is no generally safe
compatibility lookup here: legacy metadata may contain both case variants, and
automatically choosing or rebinding one could move the stable identity and its
relations to the wrong path.
The capability change is still needed so current schema/table operations
follow the Hive backend's case-insensitive semantics; columns remain
case-sensitive because their semantics are controlled by Iceberg. For a legacy
inconsistent registration, this PR deliberately keeps the conflict explicit.
The operator must remove the stale Gravitino registration, clear the external
`gravitino.identifier`, and re-import it with a new ID. We cannot safely cover
every historical inconsistent state in this bounded fix. Preserving old IDs
would require separately designed migration tooling rather than an implicit
lookup fallback.
--
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]