deniskuzZ commented on code in PR #5882: URL: https://github.com/apache/hive/pull/5882#discussion_r2267137876
########## standalone-metastore/metastore-rest-catalog/src/main/java/org/apache/iceberg/rest/HMSCachingCatalog.java: ########## @@ -63,6 +69,48 @@ public List<Namespace> listNamespaces(Namespace nmspc) throws NoSuchNamespaceExc return hiveCatalog.listNamespaces(nmspc); } + @Override + public Table loadTable(TableIdentifier identifier) { + final Cache<TableIdentifier, Table> cache = this.tableCache; + final HiveCatalog catalog = this.hiveCatalog; + final TableIdentifier canonicalized = identifier.toLowerCase(); + Table cachedTable = cache.getIfPresent(canonicalized); + if (cachedTable != null) { + String location = catalog.getTableLocation(canonicalized); + if (location == null) { + LOG.debug("Table {} has no location, returning cached table without location", canonicalized); + } else if (!location.equals(cachedTable.location())) { + LOG.debug("Cached table {} has a different location than the one in the catalog: {} != {}", + canonicalized, cachedTable.location(), location); + // Invalidate the cached table if the location is different + invalidateTable(canonicalized); + } else { + LOG.debug("Returning cached table: {}", canonicalized); + return cachedTable; + } + } + Table table = cache.get(canonicalized, catalog::loadTable); + if (table instanceof BaseMetadataTable) { Review Comment: are we only supposed to cache metadata tables? -- 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: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org