JingsongLi commented on code in PR #8391:
URL: https://github.com/apache/paimon/pull/8391#discussion_r3497398329


##########
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/lookup/FullCacheLookupTable.java:
##########
@@ -203,7 +207,8 @@ protected void bootstrap() throws Exception {
             while (batch.hasNext()) {
                 InternalRow row = batch.next();
                 if (predicate == null || predicate.test(row)) {
-                    bulkLoadSorter.write(GenericRow.of(toKeyBytes(row), 
toValueBytes(row)));
+                    InternalRow valueRow = wrapForCache(row);
+                    bulkLoadSorter.write(GenericRow.of(toKeyBytes(row), 
toValueBytes(valueRow)));

Review Comment:
   This common bulk-load path now wraps the value row, but the primary-key 
cache still creates `tableState` with 
`InternalSerializers.create(projectedType)` and its incremental `refreshRow` 
stores the raw row. With that serializer, `BlobSerializer` calls 
`getBlob().toData()`, so `lookup.blob-as-descriptor=true` still materializes 
and caches the full blob for primary-key and secondary-index lookup tables. 
Please apply `cacheValueRowType()` and `wrapForCache(row)` to the primary-key 
table state path as well.



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

Reply via email to