lxy-9602 opened a new issue, #480: URL: https://github.com/apache/paimon-cpp/issues/480
### Search before asking - [x] I searched in the [issues](https://github.com/apache/paimon-cpp/issues) and found nothing similar. ### Motivation The C++ Blob fallback reader currently materializes all sequence layers before selecting the newest non-placeholder value for each row. When newer layers cover older values, this introduces unnecessary I/O, decoding, descriptor construction, and memory allocations. Java avoids this work by calling skip() on older layers once a newer non-placeholder value has been found. Aligning the C++ reading strategy would improve performance, especially when multiple layers overlap or Blob payloads are large. ### Solution Process sequence layers from newest to oldest within each read window: - Materialize older values only for rows that still require fallback. - Advance covered rows without reading or decoding their payloads. - Bound each batch by the current read/skip range to avoid unnecessary reads across range or window boundaries. - Preserve null replacement semantics, row selections, deletion vectors, row-tracking fields, and layer-length validation. ### Anything else? This optimization applies to BLOB, ARRAY<BLOB>, and MAP<..., BLOB>, in both content and descriptor modes. ### Are you willing to submit a PR? - [x] I'm willing to submit a PR! -- 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]
