XJDKC commented on code in PR #14398:
URL: https://github.com/apache/iceberg/pull/14398#discussion_r2474177273
##########
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:
For this use case, if the caller got an null pointer or something that
indicates that the table is not modified, the caller needs to handle it by
itself. e.g., don't need to proceed.
Does it make sense to allow the caller to pass in the ETag in the
SessionContext? (Notice that, unfortunately, for RESTCatalog::loadTable, it
doesn't allow the caller to pass in a SessionContext at table level, is it
possible to add one at catalog level?)
--
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]