XJDKC commented on code in PR #14398:
URL: https://github.com/apache/iceberg/pull/14398#discussion_r2466446393


##########
core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java:
##########
@@ -413,14 +521,34 @@ public Table loadTable(SessionContext context, 
TableIdentifier identifier) {
         // attempt to load a metadata table using the identifier's namespace 
as the base table
         TableIdentifier baseIdent = 
TableIdentifier.of(identifier.namespace().levels());
         try {
-          response = loadInternal(context, baseIdent, snapshotMode);
+          responseHeaders.clear();
+          cachedTable =
+              tableCache.getIfPresent(SessionIDTableID.of(context.sessionId(), 
baseIdent));
+
+          response =
+              loadInternal(
+                  context,
+                  baseIdent,
+                  snapshotMode,
+                  headersForLoadTable(cachedTable),

Review Comment:
   This approach requires the table to have an entry in the cachedTable, so 
that we can retrieve its ETag and include it in the loadTable request. However, 
what if the ETag is cached externally, and the caller wants to supply the ETag 
directly when loading the table?
   
   This use case is valid and common, the caller may store the ETag in 
somewhere for performance optimizations and expect to use it in the next 
loadTable request (may not use the same client).



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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to