fix: resolve MongoDB external scan follow-ups - #26495
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
fengttt
left a comment
There was a problem hiding this comment.
Does this need a bvt test? All these fixes seems do not have a real test case so how do we know this PR actually fixed anything at all?
ut and ci MongoDB Connector E2E / MongoDB E2E Local (pull_request)Successful in 7m |
Harden catalog typing, temporal conversion, and predicate pushdown. Bound scan and max_by memory work, share client dials, retire clients asynchronously, and align restore plus local E2E lifecycle behavior. Fixes matrixorigin#26485
XuPeng-SH
left a comment
There was a problem hiding this comment.
Deep-reviewed exact head ae43f4a. No blocking findings.
Verified the fix as a set of system invariants rather than isolated cases:
- MongoDB classification now requires planner-owned durable typing for v2 plus an anchored envelope; generic external metadata cannot inject the marker, while anchored v1 remains a constrained compatibility path.
- Low-precision temporal mappings remain residual-only, BSON DateTime conversion rejects out-of-range years before MO arithmetic, and DATETIME/TIMESTAMP scale is applied consistently.
- Decoded vector growth is admitted incrementally against the batch budget, with row-level rollback and bounded one-document deferral.
- Per-key cold acquisition is singleflighted; ALTER/DROP generations, queue saturation, cancellation, shutdown, and remote fanout preserve bounded ownership and wakeup paths.
- Snapshot/PITR/TS restore share the MongoDB mapping skip policy, preventing orphan table-ID mappings.
- max_by uses incremental live/stale varlena accounting and amortized compaction instead of rescanning every group for every winner; merge, unmarshal, flush, OOM-preflight, and many-group cases are covered.
Local validation:
- go test: mongodb, mongoscan, aggexec, plan, compile, frontend, cnservice, test/mongodb
- go test -race: mongodb, mongoscan
- go vet: all changed owning packages
- max_by many-group repeated-winner benchmark: 36-38 us/op, 0 Go allocs/op on Apple M4
- git diff --check clean
MongoDB E2E Local is green on this exact head. Broader CI jobs are still running and were not awaited.
Merge Queue Status
This pull request spent 32 minutes 21 seconds in the queue, with no time running CI. Waiting for
All conditions
ReasonThe merge conditions cannot be satisfied due to failing checks Failing checks:
HintYou may have to fix your CI before adding the pull request to the queue again. Tick the box to put this pull request back in the merge queue (same as
|
Harden catalog typing, temporal conversion, and predicate pushdown. Bound scan and max_by memory work, share client dials, retire clients asynchronously, and align restore plus local E2E lifecycle behavior.
Fixes #26485
What type of PR is this?
Which issue(s) this PR fixes:
issue #26485
What this PR does / why we need it:
fix: resolve MongoDB external scan follow-ups