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]