924060929 commented on code in PR #66913:
URL: https://github.com/apache/doris/pull/66913#discussion_r3996579082
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/source/IcebergScanNode.java:
##########
@@ -1764,20 +1880,11 @@ private Table useFrozenTableGeneration(Table
currentTable) {
if
(snapshot.filter(IcebergMvccSnapshot.class::isInstance).isPresent()) {
IcebergSnapshotCacheValue cacheValue =
((IcebergMvccSnapshot)
snapshot.get()).getSnapshotCacheValue();
+ frozenEnableMappingVarbinary =
cacheValue.isEnableMappingVarbinary();
+ frozenEnableMappingTimestampTz =
cacheValue.isEnableMappingTimestampTz();
Optional<Table> frozenTable = cacheValue.getIcebergTable();
if (frozenTable.isPresent()) {
- // Planning the frozen generation (regular relations and
snapshot-selectable
- // system tables alike) uses the catalog's current
authenticator, storage state
- // and pre-authenticated executor. Those are only coherent
with the retained
- // frozen operations/FileIO while the catalog still serves the
generation this
- // statement pinned; after a credential/storage ALTER the
statement must fail and
- // be retried. Count-mode values retain no frozen handle and
plan the live table,
- // so they are not fenced; values without a captured context
resolve nothing here.
- if (cacheValue.getCapturedAuthenticator() != null) {
- cacheValue.ensurePlannableUnder(
- source.getCatalog().getExecutionAuthenticator(),
- source.getTargetTable().getName());
- }
+ runtimeContext = cacheValue.getRuntimeContext();
Review Comment:
Fixed in 4bb785f2eb3. IcebergRuntimeContext now retains the exact manifest
MetaCacheEntry together with the frozen table/FileIO generation, and both data
and delete manifest loads use that retained entry. Iceberg operational
invalidation now retires the whole cache group, so a pre-reset scan holds a
closed G1 entry: it may finish with an uncached direct load, but cannot hit or
publish into G2. The barrier test uses the real invalidateCatalogEntries path
and verifies distinct G1/G2 entries, no cross-generation hit/write, and no
retained-size accounting after close. Focused FE UTs: 214 passed; full
./build.sh --fe -j4 passed.
--
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]