CalvinKirs commented on code in PR #66717:
URL: https://github.com/apache/doris/pull/66717#discussion_r3836715695
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java:
##########
@@ -2000,7 +2044,8 @@ public static IcebergSnapshotCacheValue
getSnapshotCacheValue(
Optional<TableScanParams> scanParams) {
if (tableSnapshot.isPresent() ||
IcebergUtils.isIcebergBranchOrTag(scanParams)) {
// If a snapshot is specified, use the specified snapshot and the
corresponding schema (not latest).
- Table icebergTable =
IcebergSnapshotCacheValue.retainTableGeneration(getIcebergTable(dorisTable));
+ IcebergExternalMetaCache metaCache =
icebergExternalMetaCache(dorisTable);
+ Table icebergTable =
metaCache.getQueryScopedIcebergTable(dorisTable);
Review Comment:
Fixed in the follow-up commit: the explicit VERSION/TIME and branch/tag path
now resolves the generation once (getTableCacheValue exposing the handle and
its captured context together), derives the query-scoped table from that same
value, and newExplicitSnapshotValue binds the generation context onto the
constructed IcebergSnapshotCacheValue - so IcebergExternalTable.loadSnapshot()
and the HMS-Iceberg sibling hand the planning fence a bound value, and
ensurePlannableUnder rejects a catalog reset between binding and planning for
explicit snapshots and refs exactly like latest projections. Regression
testExplicitSnapshotValueCarriesItsGenerationContext covers the binding and the
fence rejecting a replaced context for a ref.
--
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]