morningman opened a new pull request, #68073:
URL: https://github.com/apache/doris/pull/68073

   Cherry-picked from #65805, #67813
   
   Batch pick of every merged PR carrying the `incremental-computation` label 
that `branch-incremental-computation` does not have yet (no 
`incremental-computation-picked` label), in the order they landed on master 
(`git log --first-parent`). One commit per PR, each created with `git 
cherry-pick -x` so the message ends with `(cherry picked from commit <master 
sha>)`. Follows the same convention as #67830 and #68017.
   
   | # | Master commit | PR | Title |
   |---|---|---|---|
   | 1 | ec886f33e1e | #65805 | [fix](nereids) Disambiguate NULL/OFFSET 
metadata from same-named nested fields |
   | 2 | 3dbe4d3ca53 | #67813 | [fix](cloud) Invalidate version caches on 
visible commit retries |
   
   Not included on purpose:
   - The 17 labelled PRs that already carry `incremental-computation-picked` 
(#62606 in the fork point, #67508 via #67712, the nine of #67830, the six of 
#68017).
   - #68012 carries the label but is a PR against this branch itself (merged as 
`6f7c87fa892`); nothing to pick.
   - #67820 is still open on master; this branch already carries its content 
via #67861.
   
   ### Prerequisite check
   
   - **#65805** lists #65591 and #66380 as related PRs: #65591 is still open 
and #66380 was closed unmerged, both superseded by #65805 itself. The 
nested-column-pruning series it builds on (#59263, #61888, #64535) is before 
the fork point, so it is already on this branch. No master commit between the 
fork point and #65805 touches `column_reader.{cpp,h}`, `descriptors.cpp`, the 
nereids pruning rules or the BE tests. The only overlap is the unrelated #66761 
(TIMESTAMP_NS), which touches `Descriptors.thrift` (a different struct) and 
adds an unrelated test plus its `Config` import to 
`DescriptorToThriftConverterTest.java`; that caused the one conflict, see below.
   - **#67813** declares no related PR (closes #67099). Its behavior does not 
depend on any master commit missing here. The one unlabelled master commit that 
touches the same main files, #66296 ("Reduce cloud version sync config"), only 
adds `maxAttempts` overloads that none of #67813's main-code hunks use. The 
other drift in `CloudGlobalTransactionMgr.java` / 
`CloudGlobalTransactionMgrTest.java` is this branch's own #67861 (the 
branch-side version of the still-open #67820), which lives in `commitTxn` / 
`releaseFinishedTso` / `afterAbortTxnResp` and does not intersect the two hunks 
#67813 adds (`checkTransactionStateBeforeCommit` and the empty-partition-list 
branch of the commit response handling).
   
   Neither #66761 nor #66296 was picked; three mechanical adaptations were 
needed instead, each recorded in the pick's commit message:
   
   - **#65805** conflicted only in the import block of 
`DescriptorToThriftConverterTest.java` (the master hunk sits next to the 
`Config` import that #66761 added). Resolved by adding only `import 
org.apache.doris.thrift.DescriptorsConstants;`. Everything else is 
byte-identical to the master commit.
   - **#67813** conflicted only in the import block of 
`CloudGlobalTransactionMgrTest.java`: the branch already has `import 
org.apache.doris.rpc.RpcException;` through #67861, so that line became 
context; the other ten imports were taken as-is.
   - **#67813**, test-only: the master helper `mockVersionHelper()` stubs 
`VersionHelper.getVersionFromMeta(request, maxAttempts)`, an overload that only 
exists on master because of #66296, so `fe-core` test compilation failed 
(`method getVersionFromMeta ... cannot be applied to given types`). On this 
branch every read goes through the single-argument overload, so the helper now 
just returns `Mockito.mockStatic(VersionHelper.class)`. No main-code hunk of 
#67813 uses the `maxAttempts` overloads.
   
   ### Drift check against master
   
   For each pick, the diff of the touched files against the master commit's 
parent before the pick and against the master commit after the pick have 
identical `+`/`-` lines (only the import context lines differ as described 
above), i.e. each pick added exactly its master hunks. Leftover differences to 
master after the picks are:
   - #65805's files: `DescriptorToThriftConverterTest.java` and 
`Descriptors.thrift` differ from master by exactly #66761's hunks.
   - #67813's files: `OlapTable.java`, `CloudPartition.java`, 
`CloudGlobalTransactionMgr.java` and `CloudGlobalTransactionMgrTest.java`. 
Applying #66296 forward and #67861 in reverse in a temporary index brings the 
four main files to zero diff against master `3dbe4d3ca53`; the test file's 
remaining difference is the `RpcException` import overlap plus the 
`mockVersionHelper()` adaptation. `CloudFEVersionSynchronizer.java` is 
byte-identical to master.
   
   ### Verification
   
   - FE: `run-fe-ut.sh --run` on this branch (regenerates thrift/protobuf, 
compiles fe-core main + test) with the test classes touched by the picks plus 
the two related cloud version-cache classes:
     5 classes, 139 tests, 0 failures, 0 errors, BUILD SUCCESS (2:12 min) — 
`PruneNestedColumnTest` 61, `DescriptorToThriftConverterTest` 21, 
`CloudGlobalTransactionMgrTest` 37 (all 13 tests #67813 adds included), 
`CloudPartitionTest` 3, `OlapTableTest` 17. (`VersionHelperTest` from #67813's 
checklist does not exist on this branch; #66296 added it.)
   - FE checkstyle on fe-core: 0 violations.
   - BE: `-fsyntax-only` with the flags of the Release build 
(`compile_commands.json`, regenerated `gen_cpp` headers) passes for 
`storage/segment/column_reader.cpp`, `runtime/descriptors.cpp`, and with 
`-DBE_TEST -fno-access-control` for 
`test/storage/segment/column_reader_test.cpp` and 
`test/runtime/descriptor_test.cpp`.
   - The three touched groovy suites (`lambda_null_pruning`, 
`left_join_not_null_column`, `null_column_pruning`) parse cleanly (groovy 
parser check).
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


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

Reply via email to