[opt](serde)Build Arrow serde error context lazily.#64660
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
|
/review |
There was a problem hiding this comment.
Reviewed PR 64660 against the Doris code-review checklist and the BE core AGENTS guidance. I did not find a substantiated code issue requiring an inline comment.
Critical checkpoint conclusions:
- Goal/test evidence: the PR narrows
checkArrowStatusso Arrow type and column names are read only on error; all updated call sites preserve the same Arrow append/null-map/value operations. Existing Arrow serde coverage is the relevant coverage; I did not run a local BE build or UT. - Scope: the change is small and focused on BE Arrow serde error-context construction.
- Concurrency/lifecycle: no new shared state, locking, threads, or static initialization dependency.
- Config/session/compatibility/persistence: no new config, session propagation, protocol field, serialization layout, storage format, or FE/BE compatibility change.
- Parallel paths: the changed-file list matches the PR diff, and the
data_type_serdecheckArrowStatuscall sites were updated consistently. Nullable, array/map/struct nested forwarding and upstreamconvert_to_arrow_batchstatus propagation remain unchanged. - Error handling: the helper still returns
Status::FatalErroronly when Arrow returns non-OK, and upstream callers continue to propagate/prepend context through the existingRETURN_IF_ERRORpaths. - Memory/COW/nullability: no changed ownership, column mutation, or null-map semantics.
- Style/CI:
git diff --checkis clean. GitHub Clang Formatter and CheckStyle checks are passing. The visibleBE UT (macOS)failure is an environment setup failure before compilation/tests (JAVA version is 25, it must be JDK-17), so I did not treat it as a PR code defect.
User focus: no additional user-provided review focus was present.
Subagent conclusions: optimizer-rewrite reported no optimizer/rewrite, semantic-equivalence, FE/BE type-consistency, or parallel join/aggregate issue. tests-session-config reported no regression-test, expected-output, session/config, compatibility, or basic style/CI issue. After the main ledger update, convergence round 1 ended with both subagents replying NO_NEW_VALUABLE_FINDINGS for the same ledger/comment set.
No inline review comments submitted because no candidate finding was accepted.
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 29341 ms |
TPC-DS: Total hot run time: 172883 ms |
ClickBench: Total hot run time: 25.36 s |
Optimize the arrow serde `checkArrowStatus` method.
What problem does this PR solve?
Problem Summary:
Optimize the arrow serde
checkArrowStatusmethod.Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)