HappenLee opened a new pull request, #69733:
URL: https://github.com/apache/doris/pull/69733
### What problem does this PR solve?
Sparse rowid reads from fixed-width BitShuffle and plain pages currently
gather selected values into a decoder-owned buffer, then copy or convert them
into the destination column. This adds an intermediate write and read for every
selected value.
Append selected page values directly into the destination column using the
existing `StorageLayout` conversion for each field type. The implementation
retains page-boundary truncation, existing values in the destination, and the
reader's nullable handling. It covers legacy DATE, DATETIME, and DECIMAL as
well as current fixed-width types including IPv4, IPv6, UUID, and TIMESTAMP_NS.
Adds typed tests for page and column reads, legacy conversions and
floating-point bit patterns, a nullable multi-page reader test, and a benchmark
comparing direct writes with the previous reusable-buffer path.
### Release note
None
### Check List (For Author)
- Test
- [ ] Regression test
- [ ] Unit Test
- [x] Manual test: compiler syntax checks for the storage
implementation, new page tests, reader test, and benchmark;
`build-support/check-build-hygiene.sh`
- The new ASAN unit tests could not be run on this base locally: the
installed third-party dependencies do not include `libpaimon_c.a`. CI will run
the full build and tests.
- Behavior changed:
- [x] No.
- [ ] Yes.
- Does this need documentation?
- [x] No.
- [ ] Yes.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]