Repository navigation
fix: avoid global lineage gate during ALTER COPY preparation - #29798
Conversation
03a27ec to
178b276
Compare
|
PR #29798 currently tracks no verified unrelated CI blockers with existing upstream issues. The previously tracked blocker #30047 (logservice 2026-10-15 record — exact-head run
Root cause, verified: upstream commit Handling: no matching open issue was found on Resolution, recorded 2026-10-15: upstream fixed 2026-10-16 record — NEW tracked blocker: #29447. Exact-head run 2026-10-16 record (second event) — NEW tracked blocker: #28652. The fresh run for the rebased head, 2026-10-17 record — both tracked blockers resolved and verified. The fresh CI run for the rebased head
Per the tracking rule (resolution verified for each blocker against its own upstream issue), both entries are removed from the marker. No new unrelated CI blocker exists for this PR; the current head is the post-conflict rebase 2026-10-18 record — one verified unrelated UT failure during the merge queue's in-place checks; no open tracking issue, so no marker entry is added. After the approval landed (XuPeng-SH, 2026-10-18T07:27:04Z), the merge queue synchronized the branch in-place: Root cause, verified: this is the exact recorded signature of #29033 — the unchanged test waits one second after releasing the overlap barrier, and the upgrade DDL transaction commits successfully just past that window ( Handling: no open issue matches this signature (searched |
178b276 to
60257e7
Compare
60257e7 to
780ccc3
Compare
|
@aptend Fresh reconciliation for the post-conflict rebase: the exact head is now
Re-requesting your review so the approval rides the current head. |
gouhongshen
left a comment
There was a problem hiding this comment.
Codex automated review
Re-inspected the PR at HEAD 666ff98 (git diff origin/main...HEAD, 27 files, +2981/-320) and reconciled it with the complete review history, all 33 reviews, 18 conversation comments and 27 inline comments. The 13-patch series is range-diff equivalent to the previous reviewed head f0840a5; the only differing hunks are rebase-conflict realignments in compile/types.go, Compile.clear and executor/types.go for upstream lastInsertIDBaseline and accountName/roleName field additions, verified byte-by-byte to carry no semantic change. Every previously blocking topic is fixed and independently re-verified in the current tree. Fixed: (1) the pre-copy global lineage gate that failed unrelated pessimistic-RC ALTERs - the broad gate now precedes physical preparation, endpoint name pins moved post-copy with WaitPolicy_Wait, and only workspace-certified transaction-created tables may wait at the gate; (2) private preparation is lock-free (nested CREATE, row copy, unaffected-index DELETE all use WithDisableLock) while locking returns on the publication path; (3) the publication proof is complete - SourceCommitTSAt scans retained tombstone entries including soft-deleted ones with per-row non-aborted commit_ts for appendable tombstones and per-block commit_ts zonemaps for merged ones, with the state-start floor as retention boundary; (4) SourceCommitTSAfterCopy bypasses only the current transaction local-write failure and still fails closed across every partition member; (5) post-copy retry ownership is terminal - alterCopyPostPublicationRetryConflict converts ErrTxnNeedRetry* into ErrTxnWriteConflict, which is now in wholeTxnRollbackCodes with frontend coverage, and isRetryErr/canRetry do not classify it as statement-retryable; (6) the private index-registration policy is reset in Compile.clear and NewCompile and cannot escape the reuse pool; the pool-oracle test tolerates documented sync.Pool drops; (7) the timestamp-only snapshot rewind removed at f0840a5 stays removed - the workspace-owned advanced snapshot is retained on every return path (TestAlterCopyRetainsWorkspaceAdvancedSnapshotOnEveryReturn, TestIssue29400CopyAlterKeepsRelocatedWorkspaceDeletesAfterReturn). Accepted as non-blocking: lagging SI or optimistic COPY publications now terminate with a whole-transaction conflict when any committed source mutation postdates the statement snapshot, which is the documented publication-proof contract rather than the old silent stale-copy replacement. Upstream commits interleaved by the final rebase (updateNewTableColId map refactor in alter.go, delegate sidecar removal, lastInsertIDBaseline, session-identity fields) are orthogonal to this PR machinery. No new blocking or non-blocking defect found on this head. Focused tests could not run in this environment because the required CGo native headers (jemalloc.h, roaring.h, xxhash.h, usearch.h) are absent and CGO_ENABLED=0 breaks unrelated upstream packages; that limitation is environmental and not attributable to this change. gofmt is clean on all touched packages and every fix carries a dedicated regression test present at this head. There are no unresolved review threads; aptends latest approval (2026-10-16) and the mo-bot approval cover a patch-equivalent series and still stand.
Merge Queue Status
This pull request spent 11 minutes 50 seconds in the queue, with no time running CI. ReasonPull request #29798 has been dequeued Queue conditions are not satisfied:
HintYou should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it. Requeued — the merge queue status continues in this comment ↓. |
XuPeng-SH
left a comment
There was a problem hiding this comment.
REQUEST_CHANGES on exact head 666ff988d18bb66a1fee5b2a0b661415a71e8ba3, merge-base 65bcea5d24610dde1a21bb9f4dea1efd82a8ce50.
One independently reproduced P2 remains: independent COPY ALTER publication fails for partitioned and AUTO_INCREMENT tables, because nested service executors retain public catalog locks during preparation. The inline finding contains the owner chain and remedy.
Real two-CN counterexample, current production source: A executes COPY ALTER on an unrelated ordinary table inside an explicit transaction and leaves it open. B executes COPY ALTER on another table. The nearest ordinary-table control enqueues at the actual SNAPSHOT gate, waits, then succeeds after A commits. Changing only B's table layout produces:
- ordinary table: PASS (0.10s);
- two HASH partitions: MySQL 20706,
lock options conflict, wait policy is fast fail, before A releases the gate (0.09s); - AUTO_INCREMENT primary key: the same premature transaction-fatal failure (0.05s).
TestReview29798IndependentPartitionCopyWaitsAtGate ended FAIL (root 4.92s; package 6.156s). Logs show completed INSERT-copy, then FastFail on the registry row, transaction rollback and workspace-file cleanup. This is an executed SQL counterexample, not a mock or a performance-noise inference. An earlier partition-only run reproduced the same result with a passing ordinary control. The base acquires admission before nested CREATE; that ordering was checked in source, not claimed as a separate base runtime run.
Other closure/evidence: read all 27 changed files/hunks and reconciled historical review concerns. The exact approved design amendment still matches SHA256 89b0f9d527cf05660d45ed44af6cd9f5810b6069357d1dc5d44f920a507f71d2; I am not reopening its approval-label or accepted cost tradeoffs. Source-frontier/tombstone/local-write fixes, terminal retry classification, IVF cleanup, pool reset, and removal of snapshot-only rewind are present. The new counterexample demonstrates that the private-preparation invariant remains incomplete beyond the previously reviewed compiler-owned nested SQL.
Fresh local validation, darwin/arm64 Go 1.27.1, canonical native build and CGo wrapper:
- Focused compile/disttae/logtailreplay roots PASS (4.129s / 4.059s / 4.053s).
- Independent concurrent-DML commit-versus-rollback SQL probe PASS (root 4.67s): rollback allows COPY; commit produces 20601 without publishing stale schema/data; a fresh ALTER transaction succeeds.
git diff --checkPASS. Production source unchanged; temporary probes removed after retaining evidence.- Exact-head CI run 38995621936 is green, including UT, SCA, coverage and required BVT. Those tests did not select the failing preparation layouts. Prior independent race evidence was reconciled through all 13 patches; no new full/race/500-worker run is claimed.
| Audit | Result |
|---|---|
| Q1 cleanup | Reproduced failures reach whole-transaction rollback and workspace-file cleanup |
| Q2 progress | Public catalog locks from service preparation force FastFail on an unrelated publisher |
| Q3 cost | Failed COPY wastes completed physical work; frontier scanning/I/O remains source-state dependent |
Accounting reviewed separately: implementation +704/-250, tests +2143/-70, design +134/-0. The speculative/publication split is reasonable, but its policy must reach the actual partition/allocator owners. No general TP regression was measured; the known scan/I/O cost and original one-object benchmark are not a zero-regression guarantee.
Nonblocking cleanup: the transient-task cleanup branch is unreachable because alterCopyCreateOptions always sets SkipIndexTaskRegistration; the late replacementAdmission.createNames assignment also has no later consumer. These obsolete remnants are separate from the demonstrated blocker.
|
@XuPeng-SH Fixed at Your P2 is valid and is fixed at one additional hop beyond the reproduced path: making
Re-requesting your review and aptend's so the approvals ride the current head. |
Retain soft-deleted tombstone proof, read appendable tombstone row commit timestamps, fail closed on unavailable object metadata, remove the unused public local-write capability, and reconcile the concurrent ALTER test with upstream pre-copy FK admission.
The ALTER COPY private replica create opts out of index CDC and idxcron task registration through skipIndexTaskRegistration on its nested executor Compile. Compile.clear reset the neighboring per-statement flags but never this one, and NewCompile never initialized it, so the released object carried the suppression into the global reuse pool: the next frontend CREATE TABLE with an inline async/IVF index could reuse that Compile and silently skip CreateAllIndexCdcTasks and CreateAllIndexUpdateTasks, leaving a published index without its maintenance owner. Reset the flag in Compile.clear alongside disableLock and the other statement-option flags, and re-initialize it in NewCompile. The suppression stays scoped to the single private preparation generation. Proof: - TestCompileClearResetsSkipIndexTaskRegistration exercises the pool reset directly (mutation-verified: removing only the clear reset fails it). - TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy reproduces the Release -> same-object NewCompile handoff deterministically (single-P, GC disabled) and asserts the next frontend Compile starts with the ordinary policy. - TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation proves an ordinary inline IVF-FLAT CREATE registers its mo_catalog.mo_index_update ivfflat_reindex task before and after ALTER COPY private preparation on the same CN, and that publication re-registers the replacement's task.
… drops TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy asserted that the frontend Compile handed back by sync.Pool is the same object as the just released private executor Compile. sync.Pool's documented contract permits dropping Put values and returning unrelated objects, and the race runtime drops Put values deliberately (runtime_randn(4) == 0), so the assertion made the canonical -race -count=100 validation randomly fail for a correct implementation. The oracle is now policy-based: 16 rounds each seed the real leak payload (private executor Compile with its executor-set skipIndexTaskRegistration, then Release -> Compile.clear -> sync.Pool.Put) and require the ordinary policy on the frontend Compile returned by the public NewCompile, whichever object the pool chooses; identity is only logged. A leak travels only through a Put the pool kept, and every kept seed is asserted on the next construction, so drops never mask the regression; the pool-free TestCompileClearResetsSkipIndexTaskRegistration keeps pinning the clear() layer. Verified: -race -count=100 green (13.128s); -count=100 without race green (7.344s); full ./pkg/sql/compile green (65.880s). Mutation check (both resets removed): deterministic round-0 failure without -race; all 3 invocations of -race -count=3 fail at round 0.
The pre-copy lineage snapshot advance went through the workspace-owned AdvanceLineageSnapshot, but alterTableCopy still rewound only the transaction timestamp when it returned. After Workspace.AdvanceSnapshot relocates transaction-local tombstones, a timestamp-only rewind leaves the workspace and the snapshot in different generations and resurrects relocated deletes of earlier uncommitted DML in the same transaction — the exact defect main removed in matrixorigin#29539, reintroduced when the advance moved before physical preparation. Remove the rewind and retain the workspace-owned advanced snapshot on every return path, matching the databranchutils.AdvanceLineageSnapshot contract. The duplicated isTemp/non-temp advance branches collapse into one mode-gated call. Tests: the compile root fails if ALTER COPY ever calls SetSnapshotTS after a workspace advancement (verified by mutation in both directions) and asserts retention across advance-failure and physical-copy-failure returns; a pessimistic-RC integration test keeps DN-flush-relocated in-memory deletes deleted across the ALTER COPY return boundary.
… tree ALTER COPY private preparation runs its nested CREATE, row copy and index cleanup with WithDisableLock, but SQL those steps trigger indirectly on the same transaction did not inherit the policy: partition-service metadata writes, allocator column creates and the allocator offset reconciliation ran on service executors with fresh statement options, arming public catalog locks that publication admission cannot certify as private. An unrelated pessimistic-RC publisher holding the SNAPSHOT gate then forced HASH-partitioned and AUTO_INCREMENT sources to FastFail (MySQL 20706) instead of waiting, while ordinary sources still waited. The internal SQL executor now marks the statement tree of every lock-free statement and nested executions inherit the policy from that context: the catalog rows created during preparation address keys private to the in-flight replacement, so the same isolation argument as the nested CREATE applies. The dead transient-index-task cleanup branch that alterCopyCreateOptions made unreachable is removed. TestIssue29400IndependentCopyAltersProgressInPessimisticRC now selects every service-owned catalog write with two new victim layouts, HASH-partitioned and AUTO_INCREMENT, alongside the unaffected IVF-FLAT index; reverting only the production change reproduces 20706 on exactly those two layouts while the index control keeps passing.
|
mo-bot review · Commit: "interrupted" |
|
@XuPeng-SH @aptend Fresh reconciliation for the post-fix rebase: the exact head is now
Re-requesting your reviews so the decisions ride the current head. |
|
mo-bot review · Commit: Review completed. Read the assessment. |
XuPeng-SH
left a comment
There was a problem hiding this comment.
mo-bot review · mo-bot-xupeng · review
Commit: cc2600421437473cb0e9658b139822c3f9ef90a5
Assessment: approve
Reviewed the complete 27-file delta, ownership chain, design and supplied review concerns. Private preparation, publication revalidation, terminal conflicts and compiler-policy cleanup are supported by source review and targeted tests. No actionable introduced defect remains.
Model: gpt-6-astra / xhigh
Session: 01a14d34-4e51-79a3-a62d-6c9c16279dc8 · slot 0 · generation 0
Validation:
-
Preflight and native-provenance verification passed. Source remained unchanged at the assessed commit.
-
Full compiler suite passed normally and under race detection; five focused concurrency tests each passed 100 race repetitions.
-
Full frontend, executor, moerr, disttae and logtailreplay package suites passed.
-
Five selected SQL integration roots passed, covering independent publishers, retained-gate rejection, stale-index retries, workspace deletes and index-task registration.
-
A supplemental two-CN SQL probe passed: committed source updates rejected stale COPY publication with error 20601; rolled-back updates allowed publication, with data/schema assertions.
-
Two build timeouts were recovered using the same caches. Receipts, logs and artifact identities are reconciled in /home/xupeng/.local/state/mo-bot/jobs/fdb7674b8f0f3149c1d2ddc5/attempt-1/validation-summary.json; closing audit receipt: checks/1792308348858032027-3.json.
Limitations:
-
The supplemental partition-plus-IVF INSERT probe failed before ALTER on both candidate and frozen-base production code; this preexisting failure is not attributed to this PR.
-
No full-repository suite or renewed 500-session/production-scale benchmark. Acceptance includes the documented source-state scan/I/O cost and maintenance-window rollout.
-
The standalone linked issue #29208 body and raw historical author/CI logs were not supplied; assessment uses the supplied PR contract, comments, frozen sources and local evidence.
Merge Queue Status
This pull request spent 54 minutes 31 seconds in the queue, with no time running CI. ReasonThe merge conditions cannot be satisfied due to failing checks
HintYou may have to fix your CI before adding the pull request to the queue again. Waiting for any of
All conditions
Requeued — the merge queue status continues in this comment ↓. |
Merge Queue Status
This pull request spent 2 hours 24 minutes 1 second in the queue, including 51 minutes 33 seconds running CI. Required conditions to merge
|
What type of PR is this?
Which issue(s) this PR fixes:
Related to #29208.
What this PR does / why we need it:
Design record
docs/design/20261010-alter-copy-pre-publication.md.Root cause
ALTER TABLE ... COPYacquired the transaction-scoped global SNAPSHOT lineage-owner gate before temporary-table creation, physical row copy, auto-increment reconciliation, and unaffected-index cloning. Every independent branch ALTER therefore held the stablemo_catalog.mo_feature_registryrow forSNAPSHOTuntil commit. Under the reported 500-worker workload, unrelated ALTERs serialized behind each other and eventually returned MySQL 1205 lock-wait timeouts or MySQL 2013 connection losses.Moving physical work before that gate also exposed correctness obligations:
Exact changes
pkg/sql/compile/alter.go.WithDisableLock, so it does not retain the source database shared lock or temporary target table exclusive lock.4022729da2, while adopting upstream'sadmitBroadTableLifecycleRCAPI and logical-ID-aware historical-source probes.SourceCommitTSAfterCopy(copyTS). It uses the authoritative partition-state frontier, excludes only current-transaction workspace writes, includes in-memory rows, data objects, and persisted tombstone objects, fails closed for unavailable providers, and short-circuits once a source frontier exceeds the copy timestamp.SourceCommitTSAfterCopyacross every combined partition member, short-circuiting after any member exceeds the copy timestamp and failing closed for missing member providers; a local write on one member no longer suppresses checks for other rows or partitions.ErrTxnWriteConflict; RC statement retry therefore cannot repeat physical preparation while retaining locks. The frontend classifies this conflict as a whole-transaction rollback in both autocommit and explicit-transaction mode.ResolveintoErrTxnNeedRetryWithDefChanged, preventing the CI-observed stale-index-generation panic.RelationCreatedInCurrentTxnand after-copy source-frontier relation capabilities with disttae primary, combined-table, and delegate implementations. Relation-created sources skip the committed probe; existing relations with local writes still check committed mutations from other transactions.Issue-to-test proof
TestAlterCopyPhysicalWorkDoesNotWaitForLineageOwnerGateproves both independent physical inserts start while the lineage gate is held elsewhere.TestAlterCopyAndDropUseGateBeforeSourceLocks,TestAlterCopyAndTruncateUseGateBeforeSourceLocks, andTestAlterCopyAndTruncateSerializeBeforeTableLocksprove ALTER physical work starts before the gate and both ALTER and TRUNCATE record gate acquisition before source locks.TestLockAlterCopySourceRetryContractsproves optimistic transactions take no source locks, while catalog-table and physical-table retry errors are converted toErrTxnNeedRetryWithDefChanged.TestInspectAlterDataBranchLineageSeesBranchCreatedAfterPreflightandTestAlterTableHasLatestHistoricalBranchSourceUsesFreshUnlockedProbeprove a late branch is rediscovered by authoritative postgate preparation.TestAlterCopyRejectsSourceReplacementAfterGate,TestAlterCopyRejectsSourceDataChangeAfterCopy, andTestAlterCopyRejectsSameIDSourceDefChangeAfterGatereject replacement, row changes, and same-ID definition changes before publication.TestCloneUnaffectedIndexesRetriesWhenSourceIndexDisappearsproves the definition-change retry path instead of a nil dereference.TestAlterCopyLateLineagePublicationUsesCopyTimestamp,TestAlterCopyFailsAfterPhysicalWorkWithoutReleasingGate, and same-statement replacement coverage verify the original timestamp, injected failure, and no publication after stale-copy discovery.TestAlterCopySkipsSourceChangesForRelationCreatedInCurrentTxnskips the probe only for relation-created sources, whileTestAlterCopyChecksCommittedChangesDespiteTransactionLocalWritesproves local writes do not suppress another transaction's committed change.SourceCommitTSitself still fails closed for async-index callers.TestAlterCopyCreateOptionsDisablesNestedCreateLockprovesWithDisableLock.TestAlterCopySourceChangedSinceCopyUsesSourceCommitTSandTestAlterCopySourceChangedSinceCopyFailsClosedWithoutProvidercover unchanged, changed, and unavailable states;TestSourceCommitTSAtIncludesPersistedTombstoneproves a persisted DELETE advances the frontier.TestCombinedTxnTableSourceCommitTSReturnsMax,TestCombinedTxnTableSourceCommitTSShortCircuits,TestCombinedTxnTableSourceCommitTSFailsClosedForMissingProvider, andTestCombinedTxnTableSourceCommitTSPropagatesMemberErrorcover member maxima, short-circuiting, and fail-closed behavior.TestAlterCopyPostPublicationConflictIsNotStatementRetryablechecks bothisRetryErrandcanRetry.Reproduction
77dbf5464466b1d5ae784e7d17d92cd1c1c8d17d: 301/500 workers completed, 199/500 failed, 172 failures were MySQL 1205, and 27 failures were MySQL 2013.pkg/sql/compile/alter.gowith its base-compatible version causesTestAlterCopyPhysicalWorkDoesNotWaitForLineageOwnerGateto time out while both independent physical inserts wait behind the global lineage gate.37943988958panicked inconstructTableClonefromcloneUnaffectedIndexesduringTestIssue277xxDDLConsistency/27725_concurrent_alter_retries_a_stale_physical_index_generation. The missing-index retry guard and exact integration test now pass.TestAlterCopyRejectsSameIDSourceDefChangeAfterGateto lose the expected retry error./tmp/mo-29208-concurrency-500-revision-r6.out).BenchmarkSourceCommitTSAtUnchanged250KObjectmodeled one unchanged 250,000-row non-appendable object with a threshold after every row commit and measured44075 ns/op,1125 B/op, and4 allocs/opon Apple M5 (darwin/arm64, 10 GOMAXPROCS).Tests
104cac3d12:.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=1200s ./pkg/sql/compile ./pkg/vm/engine/disttae ./pkg/vm/engine/disttae/logtailreplay— passed after the rebase onto
42d42546fd2c2b2449cb81cea47f81d300139753: compile in 18.925s, disttae in 11.943s, and logtailreplay in 8.386s..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=900s -run '^TestIssue27055DatabaseCloneReadsExplicitTransactionSource$' ./pkg/tests/issues— passed in 13.087s after the transaction-local workspace-write fix.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^(TestTxnTableHasTransactionLocalWrites|TestCombinedTxnTableHasTransactionLocalWritesShortCircuits|TestAlterCopySkipsSourceChangesForTransactionLocalWrites)$' ./pkg/vm/engine/disttae ./pkg/sql/compile— passed in 1.370s and 1.403s.
433a8dc26c:.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 15.293s.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/vm/engine/disttae ./pkg/vm/engine— passed in 9.901s and 1.537s.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=900s -run '^(TestIssue277xxDDLConsistency|TestIssue29400CopyAlterRetainedGatePromotionFastFails)$' ./pkg/tests/issues— passed in 18.517s.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=900s ./pkg/frontend ./pkg/sql/plan— passed in 37.126s and 36.724s.
gofmt -l,git diff --check, andgit status --porcelain=v1 -uall— clean..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue277xxDDLConsistency/27725_concurrent_alter_retries_a_stale_physical_index_generation$' -v ./pkg/tests/issues— passed in 11.668s on the latest rebased head.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^(TestCloneUnaffectedIndexesRetriesWhenSourceIndexDisappears|TestAlterCopyAndTruncateSerializeBeforeTableLocks|TestIssue277xxDDLConsistency/27725_concurrent_alter_retries_a_stale_physical_index_generation)$' ./pkg/sql/compile ./pkg/tests/issues— compile tests passed; the exact integration subtest was rerun explicitly as above.
e3de6b6204:.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=300s -run '^TestLockAlterCopySourceRetryContracts$' ./pkg/sql/compile— passed.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^(TestAlterCopyPhysicalWorkDoesNotWaitForLineageOwnerGate|TestAlterCopyAndDropUseGateBeforeSourceLocks|TestAlterCopyAndTruncateUseGateBeforeSourceLocks|TestAlterCopyFailsAfterPhysicalWorkWithoutReleasingGate|TestAlterCopyLateLineagePublicationUsesCopyTimestamp|TestAlterCopyRejectsSourceReplacementAfterGate|TestAlterCopyRejectsSourceDataChangeAfterCopy|TestAlterCopySkipsSourceChangesForRelationCreatedInCurrentTxn|TestAlterCopyRejectsSameIDSourceDefChangeAfterGate|TestAlterCopyRejectsSameStatementReplacementDiscoveredAfterGate)$' ./pkg/sql/compile— passed.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=300s -coverprofile=<profile> -run '^TestLockAlterCopySourceRetryContracts$' ./pkg/sql/compile— passed; the profile records executions of
alter.goblocks1187,1199, and1210, the three previously uncovered changed blocks that caused the 73.61% PR coverage result..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 14.577s on the rebased head
e3de6b6204..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/vm/engine/disttae— passed in 7.745s.
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/vm/engine— passed in 0.827s.
.agents/skills/mo-dev/scripts/mo-cgo-test -race -count=10 -timeout=300s -run '^(TestAlterCopyPhysicalWorkDoesNotWaitForLineageOwnerGate|TestAlterCopyAndDropUseGateBeforeSourceLocks|TestAlterCopyAndTruncateSerializeBeforeTableLocks|TestCloneUnaffectedIndexesRetriesWhenSourceIndexDisappears)$' ./pkg/sql/compile— passed in 4.688s.
GOWORK=off CGO_CFLAGS="-I<cgo> -I<thirdparties>/include" go vet -mod=readonly ./pkg/sql/compile ./pkg/vm/engine ./pkg/vm/engine/disttae— passed.
make build— passed; only the existing duplicate-library linker warning was emitted.cd /tmp/mo-29208-bvt-r3 && bash /Users/ghs-mo/MOWorkSpace/mo-tester/run.sh -n -p <worktree>/test/distributed/cases/ -i diff_schema_evolve,merge_schema_evolve,alter_table_historical_lineage— 492/492 passed:
diff_schema_evolve278/278,merge_schema_evolve139/139, andalter_table_historical_lineage75/75.ulimit -n 2048 && python3 /tmp/mo-29208-concurrency-500.py— 500/500 successful ALTERs, 500/500 columns verified, 0 failures, 0 MySQL 1205, 0 MySQL 2013; database dropped.
gofmt -lon the seven changed Go files,git diff --check, andgit status --porcelain=v1 -uall— clean and limited to the focused seven-file scope.The BVT and real-workload runs passed on this implementation before the latest rebase. The latest semantic rebase onto
f09d4788fdapplied cleanly; upstream changed unique-index duplicate precheck code inpkg/sql/compileand did not alter this PR's ALTER COPY production files. Latest exact-head validation on79e45f24b5:.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=900s ./pkg/sql/compile— passed in 16.208s..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=900s -run '^TestIssue277xxDDLConsistency/27725_concurrent_alter_terminal_conflict_supports_external_retry$' ./pkg/tests/issues— passed in 11.308s.gofmt -lon all changed Go files,git diff --check, andgit status --porcelain=v1 -uall— clean and limited to the focused PR scope.Residual risk
createbucketsimage (unauthorized: access to the requested resource is not authorized); no matching issue was found. The oldpr-size-labelfailure was an unrelated runner-proxy TLS failure tracked by [Bug]: pr-size-label fails when the runner proxy drops the GitHub API TLS connection #27127.Current exact head:
cf9a1735b7Rebased onto current
main02a2823c20and resolved both semantic rebase boundaries:replacementAdmission.createNamesbefore physical CREATE and passing that admission into nestedwithDropLifecycle;ErrTxnWriteConflictto the whole-transaction rollback set.The source mutation proof now closes both DELETE lifecycle counterexamples:
RelationHasTransactionLocalWriteschain was removed while preserving the private async-index local-write guard.The concurrent ALTER integration test now distinguishes the newly upstream pre-copy FK name-pin fast-fail (
ErrLockConflict) from terminal post-copyErrTxnWriteConflict; both are externally retryable, and final schema/index assertions remain unchanged.Latest exact-head local validation:
CGO_CFLAGS=... go test ./pkg/vm/engine/disttae/logtailreplay -run 'TestSourceCommitTSAt|TestMaxCommitTS' -count=1— passed.CGO_CFLAGS=... go test ./pkg/vm/engine/disttae ./pkg/sql/compile ./pkg/frontend ./pkg/common/moerr -run 'TestSourceCommitTS|TestCombinedTxnTableSourceCommitTS|TestTxnTableDelegateSourceCommitTS|TestAlterCopy|Test_isErrorRollbackWholeTxn|TestStaticRollbackSetIsInfrastructureOnly|Test.*Rollback.*Txn' -count=1— passed before the final one-commit rebase; the production delta is unchanged by that test-only upstream commit.CGO_CFLAGS=... go test ./pkg/tests/issues -run 'TestIssue277xxDDLConsistency/27725_concurrent_alter_conflict_supports_external_retry' -count=1— passed on the exact final head.git diff --check— passed; the working tree is clean.Freshness update: rebased exact head
cba088b792ontomain02a2823c20. The only new upstream commit changes join-expression ownership and has no file overlap with this PR. Revalidated on the exact head: focused logtail source-frontier tests, focused ALTER COPY compile tests, the concurrent ALTER integration test, andgit diff --check; all passed.Coverage CI follow-up and rebase validation
Coverage run
38204952772exposed one PR-owned test expectation and two unrelated upstream failures:TestIssue29400CopyAlterRetainedGatePromotionFastFails/exclusive_gateexpected the competing ALTER to wait, but upstream pre-copy FK admission now fast-fails withErrLockConflictwhen it meets the retained source lock. The test now accepts that expected conflict and proves the UPDATE owner can execute its next statement, commit value2, and complete the targetDROP TABLEwithout deadlock.TestPartitionTopNRejectsUnsupportedOrderTypeis the existing clean-main issue [Bug]: TopN unsupported-order-type UT still rejects T_any after NULL comparator support #29968.TestTruncateLifecycleRCWaitPolicyis the existing clean-main issue [CI] TestTruncateLifecycleRCWaitPolicy fails on clean main #29971.Exact-head validation:
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=240s -run '^TestIssue29400CopyAlterRetainedGatePromotionFastFails$' ./pkg/tests/issues— passed in 12.889s.gofmt -w pkg/tests/issues/issue_29400_test.go,git diff --check, andgit status --porcelain=v1 -uall— clean before commit.The branch already contained
main02a2823c20for that test-only follow-up.Rebase onto
main7af631bdf7The exact head is now
cf9a1735b7, rebased onto currentmain7af631bdf7. The rebase applied cleanly and incorporates the upstream fixes for the two clean-main coverage blockers:TestPartitionTopNRejectsUnsupportedOrderType([Bug]: TopN unsupported-order-type UT still rejects T_any after NULL comparator support #29968) now passes on the rebased head.TestTruncateLifecycleRCWaitPolicy([CI] TestTruncateLifecycleRCWaitPolicy fails on clean main #29971) now passes on the rebased head.TestIssue29400CopyAlterRetainedGatePromotionFastFailsregression also passes after the rebase.Exact-head validation:
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=240s -run '^TestIssue29400CopyAlterRetainedGatePromotionFastFails$' ./pkg/tests/issues— passed in 26.805s..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=120s -run '^TestPartitionTopNRejectsUnsupportedOrderType$' ./pkg/sql/colexec/partition— passed in 3.080s..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=240s -run '^TestTruncateLifecycleRCWaitPolicy$|^TestAlterCopyAndTruncateSerializeBeforeTableLocks$' ./pkg/sql/compile— passed in 3.543s.gofmt -lover all changed Go files,git diff --check, andgit status --porcelain=v1 -uall— clean after the rebase.Review update and current exact head:
f8894b6a0fRebased cleanly onto current
main11914526baand addressed the pessimistic-RC independent-ALTER publication finding:admitReplacementNamesno longer runs before physical COPY preparation. Pessimistic-RC ALTER COPY now acquires the broad SNAPSHOT gate first, then pins replacement endpoint names withWaitPolicy_Wait.G -> name -> Greverse edges.WithDisableLock; nested execution skips pre-pipeline metadata/table locks and lock operators. TRUNCATE keeps its existing fast-fail replacement-name policy.TestIssue29400IndependentCopyAltersProgressInPessimisticRCcovers both a held explicit publisher and overlapping autocommit publishers. It uses separate connections, observes the independent ALTER waiting at the gate, proves it does not fail while the holder retains the gate, and proves both ALTERs finish after release../pkg/sql/compileand./pkg/tests/issueswith.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s, including the new independent-publisher integration test.gofmt -lover changed Go files,git diff --check, and the final clean-tree check also passed.G -> private preparation locks -> replacement names -> sourcepublication order and its liveness proof.Rebase onto
mainb09f2c6fc5Rebased cleanly onto
mainb09f2c6fc5at exact head3e5069423d..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile ./pkg/tests/issues ./pkg/frontend ./pkg/vm/engine/disttae ./pkg/vm/engine/disttae/logtailreplayCurrent exact head after the latest rebase:
2e45e40035Rebased cleanly onto current
maincd8d5abf96.pkg/sql/compile/compile.goandpkg/sql/compile/compile_test.go, where upstream renamed the vector-index scan node; the ALTER COPY ownership changes remained semantically unchanged..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/tests/issues ./pkg/vm/engine/disttae ./pkg/vm/engine/disttae/logtailreplaygit diff --check,gofmt -lover changed Go files, and the clean-tree check passed before push.Review update and exact head:
e088a231b9Rebased cleanly onto current
main175a645a85and closed the unaffected-index preparation finding:mo_tables/mo_databaselock retention introduced by transient task cleanup while preserving final index-task ownership.DeleteBeforeClonenow executes its private replacement hidden-table cleanup withWithDisableLock, so the nested DELETE acquires neither catalog metadata locks nor row locks.TestIssue29400IndependentCopyAltersProgressInPessimisticRCnow enablesexperimental_ivf_index, creates an unchanged IVF-FLAT index, and covers both a held explicit publisher and overlapping autocommit publishers. The unrelated ALTER waits at the publication gate and completes after release.TestAlterCopyCreateOptionsDisablesNestedCreateLockasserts the new skip-registration option.TestScopeAlterTableCopyInsertTmpDataPipelineFlushnow proves private preparation no longer callsCopyTableDeffor transient task cleanup while retaining its nil-context pipeline-flush oracle.Exact-head validation after the rebase:
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400IndependentCopyAltersProgressInPessimisticRC$' ./pkg/tests/issues— passed..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=120s -run '^TestScopeAlterTableCopyInsertTmpDataPipelineFlush$' ./pkg/sql/compile— passed.gofmt -lover all changed Go files,git diff --check, andgit status --porcelain=v1 -uall— clean on the exact head.Additional validation on the identical code before the unrelated one-commit rebase (
896fa84927onmain3e50e1b32d):.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/tests/issues— passed..agents/skills/mo-dev/scripts/mo-cgo-test -race -count=1 -timeout=600s -run '^TestIssue29400IndependentCopyAltersProgressInPessimisticRC$' ./pkg/tests/issues— passed.Current exact head after latest rebase:
6596f9dc04Rebased cleanly onto current
maine5111936b9after the PR was reported behind.git range-diffconfirms all ten PR commits are patch-equivalent to the prior heade088a231b9; only their base changed.Current exact head after latest rebase:
abd5a45122Rebased onto current
main21f19ae063aftermainadvanced twice during the refresh:6596f9dc04ontomain6b0da62260at3574aa681f;git range-diffconfirmed all ten PR commits were patch-equivalent.mainhad advanced to21f19ae063. Fetched that base and rebased again toabd5a45122.git range-diffbetween the3574aa681fandabd5a45122ranges confirms all ten PR commits remain patch-equivalent. The new upstream commit overlaps this PR only inpkg/sql/compile/compile.go/compile2.go; the automatic rebase preserves both the ALTER private-preparation locking changes and upstream prepared zero-limit producer behavior..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400IndependentCopyAltersProgressInPessimisticRC$' ./pkg/tests/issues— passed..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestPreparedZeroLimitReuse$' ./pkg/tests/sqlintegration— passed.gofmt -lover changed Go files,git diff --check, protected-scope check, and the final clean-tree check passed on the exact head.Review update and current exact head:
7f243d2e4cRebased onto current
mainfcad62a8ffand closed the Compile-pool registration-policy escape found in reviewPRR_kwDOFEPiGM8AAAABR92hOw:Compile.clearresetsskipIndexTaskRegistrationwith the other per-statement flags (disableLock,skipDataBranchReclaim,keepAutoIncrement) before the object returns to the global reuse pool, andNewCompilere-initializes it. The ALTER COPY private-registration opt-out is now a property of the single private preparation generation and can no longer reach an unrelated laterCREATE TABLEwith an inline async/IVF index through pool reuse (compile.go).docs/design/20261010-alter-copy-pre-publication.md).ignoreCheckExperimental, the only other assigned-but-unreset sibling intxnExecutor.Exec, is pre-existing upstream state from enable partition feature #22428 and is currently assigned-but-never-read; it is outside this PR's introduced delta and left untouched.Proof on the exact head:
TestCompileClearResetsSkipIndexTaskRegistrationexercises the pool reset directly; mutation-verified: removing only theclearreset makes it fail while the rest of the fix stays.TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicydeterministically reproduces the review's Release -> same-objectNewCompilepool handoff (single-P, GC disabled) and proves the next frontend Compile starts with the ordinary registration policy.TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparationproves, on one CN connection, that an ordinary inline IVF-FLATCREATE TABLEregisters itsmo_catalog.mo_index_updateivfflat_reindextask before and afterALTER ... ALGORITHM=COPYprivate preparation, and that publication re-registers the replacement index's task.Validation on the exact head:
.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 27.431s..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/vm/engine/disttae— passed in 10.236s..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/vm/engine/disttae/logtailreplay— passed in 27.991s.-.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=1800s ./pkg/tests/issues— passed in 552.697s (177 tests, 0 failures; includes allTestIssue29400*roots and the new registration control). An earlier run of this suite on the same head failed once with a transientinternal error: cn service bootstrapwhile the embedded cluster was starting; the identical rerun and every focused cluster test passed.gofmt -lover changed Go files,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.CI-blocker follow-up: the tracked unrelated blocker #30047 (logservice
gossip_fixture_test.goobsoleterandomPorts.allocatesignature failing UT/SCA/Coverage on run38347106648) was closed at2026-10-13T08:30:47Z; its fix landed onmainin35c8dd5854and is incorporated by this rebase. This PR does not modifypkg/logservice. The push creates a new head and a fresh CI run; the stale failed run is not rerun.Current exact head after latest rebase:
4c5051fc77Rebased onto current
main5d971d07a7after the PR was reported behind.git range-diffconfirms all eleven PR commits are patch-equivalent to the prior head7f243d2e4c; only their base changed.5d971d07a7(empty indexed FK cascades / self-FK ALTER) touchespkg/sql/planand BVT cases with no file overlap with this PR..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 16.425s;.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— passed in 8.110s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
8e5c8b3b53Rebased onto current
maine17fc0f7feafter the PR was reported behind again.git range-diffconfirms all eleven PR commits are patch-equivalent to the prior head4c5051fc77; only their base changed.6ca4363a73information_schema rewritten-column hiding,e17fc0f7feprepared row-rule invalidation) touchpkg/sql/plan,pkg/frontendproduction files, and BVT cases with no file overlap with this PR..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 19.691s; the focused frontend rollback-classification tests this PR extends (Test_isErrorRollbackWholeTxn,TestStaticRollbackSetIsInfrastructureOnly, and the surrounding rollback roots) — passed in 2.152s;.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— passed in 9.078s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
60e84f43dfRebased onto current
mainc4a210802dafter the PR was reported behind again.git range-diffconfirms all eleven PR commits are patch-equivalent to the prior head8e5c8b3b53; only their base changed.5652252431window hash partitioning,959d12d3b9Starlark NULL boundary,838bf5d1f8docs MO-scan branch,c4a210802dIceberg adapter module tidy) have no file overlap with this PR's source or test files; the Iceberg commit's workflow change is upstream-owned and untouched here..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 18.864s;.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— passed in 8.837s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
cd2c40fd52Rebased onto current
maina53390c57dafter the PR was reported behind again.git range-diffconfirms all eleven PR commits are patch-equivalent to the prior head60e84f43df; only their base changed.ec7a910a02(TIME assignment bounds for external LOAD) anda53390c57d(BuildJsonPlan statistics snapshot race). The LOAD commit also touchespkg/sql/compile/compile.goin the extern-scan region; the rebase auto-merged it with this PR'sNewCompile/clearflag changes, and bothskipIndexTaskRegistrationresets are verified present on the exact head (compile.go:161 and compile.go:571)..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 14.119s (includesTestCompileClearResetsSkipIndexTaskRegistrationandTestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy);.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— passed in 7.801s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
f796e46fb0Rebased onto current
main071a79b77fafter the PR was reported behind again.git range-diffconfirms all eleven PR commits are patch-equivalent to the prior headcd2c40fd52; only their base changed.071a79b77f(preserve row rewrite rules through CTAS) touchespkg/sql/compile/ddl.go(populateCreatedTable, CTAS INSERT privilege region) andpkg/sql/compile/sql_executor.go(rewrite-option attachment intxnExecutor.Exec), both outside this PR's hunks; the rebase auto-merged and all threeskipIndexTaskRegistrationsites are verified present (compile.go:161, compile.go:571, sql_executor.go:618)..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 16.696s (includes both pool-boundary regression tests);.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— passed in 8.558s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
ad74f1e810Rebased onto current
main5a0570ea70after the PR was reported behind again.git range-diffconfirms all eleven PR commits are patch-equivalent to the prior headf796e46fb0; only their base changed.2e139d84bfKafka Connect recovery qualification harness,ac98d7bd1fscalar DESCRIBE view reflection coverage,5a0570ea70docs/skills template validation) are test/documentation changes with no file overlap with this PR..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— passed in 23.443s (includes both pool-boundary regression tests);.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— passed in 8.945s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Review update and current exact head: 173bf86
Addresses aptend's test-reliability P2 from the deep re-review of
ad74f1e810e2d1b6c360129e326155dc3fa4875c(that review closed the previous P1 pool-leak blocker and substantiated no further production blocker). The P2: the new pool-handoff regression assertedsync.Poolpointer identity, which the pool's documented contract and the race runtime do not support —Putdrops values with probability 1/4 under the race detector — so the canonical-race -count=100validation could fail randomly on a correct implementation (19/100 on the reviewer's run, reproduced locally at compile_test.go:203).This cycle adds one commit, test-only. At commit time
mainwas unchanged (5a0570ea70083c9365719009a5ed8d7618f9ed91); it advanced to55a019f0b0during validation, so this commit was then rebased before pushing - see the rebase section below for the patch-equivalence record.TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicyis now a drop-tolerant, policy-based oracle. Each of 16 rounds seeds the exact leak payload through the real boundary — private executorCompilewith its executor-set policy,Release(Compile.clearthensync.Pool.Put) — and requires the ordinary registration policy on the frontendCompileconstructed next by the publicNewCompile, whichever object the pool returns. Pointer identity is only logged; a legitimate pool drop can never fail the root. Drops cannot mask a leak: inheritance requires aPutthe pool kept, every kept seed is asserted on the immediately following construction, and with both reset layers present the root is green by construction.clear()reset and theNewCompileinit removed, the root fails deterministically without-raceat round 0, and fails all 3 invocations with-race -count=3; with the resets present, the canonical race command is fully green. Theclear()reset layer keeps its deterministic, pool-free probeTestCompileClearResetsSkipIndexTaskRegistration(removing only theclearreset still fails it).-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile— PASS 8.500s (100/100); the same command without-race— PASS (7.344s); full./pkg/sql/compilepackage - PASS 18.046s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Rebase onto current main:
173bf86f72(173bf86f7228cfc5c3ac604294e2581803ee4294)mainadvanced from5a0570ea70to55a019f0b0during the validation above, so the branch was rebased before pushing.git range-diffconfirms all twelve PR commits (the eleven prior patches plus the new drop-tolerant handoff test) are patch-equivalent to the pre-rebase head01fb35bb3a; only their base changed.944b721d1bJOIN reset buffers across execution generations —pkg/sql/colexec/{dedupjoin,hashjoin,indexjoin,loopjoin},821250ea88recursive-CTE test cases,55a019f0b0canonical collation admission tests) have no file overlap with this PR; the rebase auto-merged..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— PASS in 18.046s (includes both pool-boundary regression tests);.agents/skills/mo-dev/scripts/mo-cgo-test -race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile— PASS in 8.500s, no failure in 100 runs;.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— PASS in 18.363s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
2990b63c36(2990b63c36c8cd5d6c652f8927503af2a95361cd)Rebased onto current
mainb2e8bc4789aftermainadvanced again while the previous section was being pushed (55a019f0b0->b2e8bc4789).git range-diffconfirms all twelve PR commits (the eleven prior patches plus the drop-tolerant handoff test) are patch-equivalent to the prior head173bf86f7228cfc5c3ac604294e2581803ee4294; only their base changed.b2e8bc4789(remap reused CTE readers after projection pruning) touchespkg/sql/plan/{cte_reuse.go,query_builder.go}plus CTE test cases, with no file overlap with this PR; the rebase auto-merged..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— PASS in 25.422s (includes both pool-boundary regression tests);.agents/skills/mo-dev/scripts/mo-cgo-test -race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile— PASS in 8.389s, no failure in 100 runs;.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— PASS in 8.846s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after latest rebase:
0ed0f79634(0ed0f79634b20a0f8b8c74d525f91999dc4cd3f1)Rebased onto current
mainfab7b5c043after the behind event (head2990b63c36was reported behindmainadvancedb2e8bc4789->fab7b5c043shortly after the previous cycle's push).git range-diffconfirms all twelve PR commits (the eleven prior patches plus the drop-tolerant handoff test) are patch-equivalent to the prior head2990b63c36c8cd5d6c652f8927503af2a95361cd; only their base changed.fab7b5c043(preserve join predicate ownership during reordering, fix: preserve join predicate ownership during reordering #30056) touchespkg/sql/plan/associative_law.goplus a plan regression test, with no file overlap with this PR; the rebase auto-merged..agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s ./pkg/sql/compile— PASS in 14.853s (includes both pool-boundary regression tests);.agents/skills/mo-dev/scripts/mo-cgo-test -race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile— PASS in 10.348s, no failure in 100 runs;.agents/skills/mo-dev/scripts/mo-cgo-test -count=1 -timeout=600s -run '^TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation$' ./pkg/tests/issues— PASS in 7.680s (first invocation of this root during the cycle aborted with[build failed]: the Go linker could not reopen cached cgo objects after a build-cache eviction; the identical command was rerun and passed in 7.680s, so the abort was a toolchain cache eviction, not a test failure).gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
16023e02d6(16023e02d691abaa1e46fc0481d40cc0509c1c2e)Rebased onto current
main51300cbd01after the behind event (head0ed0f79634was reported behind;mainadvancedfab7b5c043->51300cbd01).51300cbd01(prevent table rename from bypassing role row filters, fix: prevent table rename from bypassing role row filters #29186) is the first upstream commit during this PR's life that also modifies this PR's main production file:pkg/sql/compile/alter.go(+183 — newcheckRoleRuleRenameAdmission*admission gates at theScope.RenameTableentry and the rename-action path ofScope.AlterTable, plus newrole_rule_lifecycle.go),alter_test.go,types.go(newScope.roleRuleRenameAdmissionChecked), frontend rename/rewrite-rule files, and twopkg/tests/issuesroots.alterTableCopypublication (broad gate -> endpoint name pins -> source locking/revalidation -> private-replica replace) is untouched by the upstream hunks. Upstream's insertion anchorreconcileAlterCopyAutoIncrementis pre-existingmainmachinery from fix: reconcile auto-increment state for copy and clone #26197, not part of this PR.git range-diffshows eleven commits patch-equivalent and commit 1 (fix(alter): avoid global lineage gate during physical copy) with only its import-hunk context shifted by upstream's import additions; no patch content changed../pkg/sql/compile- PASS 13.688s (includes both this PR's lifecycle/pool regression roots and upstream's new rename-admission roots);./pkg/frontend- PASS 34.112s (includes upstream's rewrite-rule/authenticate roots and this PR's whole-transaction rollback roots); the canonical race command-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile- PASS 18.887s, no failure in 100 runs; full./pkg/tests/issues- PASS 413.353s (includes upstream's new/updated issue_29133/issue_29095 roots and this PR's issue_29400/issue_277xx roots).gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
cb0ded487f(cb0ded487f49a9ad3113c654ccf1404949eec24a)Rebased onto current
mainfd4767e488after the behind event (head16023e02d6was reported behind;mainadvanced51300cbd01->fd4767e488).fd4767e488(exclude fake primary key from LAST_INSERT_ID, fix(insert): exclude fake primary key from LAST_INSERT_ID (#29903) #30004) touchespkg/incrserviceand its test cases only, with no file overlap with this PR and no interaction with the ALTER COPY preparation/publication lifecycle; the rebase auto-merged and the prior role-filter reconciliation record above remains the current one.git range-diffconfirms all twelve PR commits are patch-equivalent to the prior head16023e02d691abaa1e46fc0481d40cc0509c1c2e; only their base changed../pkg/sql/compile- PASS 14.348s (includes both pool-boundary regression tests); the canonical race command-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile- PASS 8.890s, no failure in 100 runs; focusedTestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparationin./pkg/tests/issues- PASS 8.838s; the upstream-changed./pkg/incrservicepackage - PASS 5.350s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
a9d969890c(a9d969890c8a2e9076840237c163af588bce19fb)Rebased onto current
maina33dcfb2e5after the behind event (headcb0ded487fwas reported behind;mainadvancedfd4767e488->a33dcfb2e5).a33dcfb2e5(perf: reduce wide-schema work and redundant gossip fixture startup, perf: reduce wide-schema work and redundant gossip fixture startup #30200) touchespkg/sql/plan/{default_binder.go,build_show_util.go,types.go}plus plan/logservice tests, with no file overlap with this PR and no interaction with the ALTER COPY preparation/publication lifecycle; the rebase auto-merged and the prior role-filter reconciliation record remains the current one.git range-diffconfirms all twelve PR commits are patch-equivalent to the prior headcb0ded487f49a9ad3113c654ccf1404949eec24a; only their base changed../pkg/sql/compile- PASS 21.080s (includes both pool-boundary regression tests and exercises upstream's plan-binder change through the normal compilation paths); the canonical race command-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile- PASS 7.788s, no failure in 100 runs; focusedTestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparationin./pkg/tests/issues- PASS 7.968s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
7f086296db(7f086296db9f32e3ebcd1d59ef36da325bd20fd9)Rebased onto current
mainb1a6da4e16after the behind event (heada9d969890cwas reported behind;mainadvanceda33dcfb2e5->b1a6da4e16).b1a6da4e16(fix(parser): reject overflowing type lengths and scales, fix(parser): reject overflowing type lengths and scales #30176) touchespkg/sql/parsers/dialect/mysqlplus tests, with no file overlap with this PR and no interaction with the ALTER COPY preparation/publication lifecycle; the rebase auto-merged and the prior role-filter reconciliation record remains the current one.git range-diffconfirms all twelve PR commits are patch-equivalent to the prior heada9d969890c8a2e9076840237c163af588bce19fb; only their base changed../pkg/sql/compile- PASS 13.528s (includes both pool-boundary regression tests); the canonical race command-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile- PASS 9.102s, no failure in 100 runs; focusedTestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparationin./pkg/tests/issues- PASS 9.154s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run. For the record, the prior heada9d969890c's CI had already passed SCA Linux/arm64, UT Coverage on Ubuntu/x86, and the PROXY BVT compose before this rebase superseded it; its remaining checks were still queued/in progress and are replaced by the new run.Current exact head after review fix and rebase:
f0840a56e0(f0840a56e0d382b3219b449a69a84a53bc957dbe)Handles the shared P1 from aptend's thread and XuPeng-SH's mo-bot review (timestamp-only snapshot rewind after workspace-owned advancement), plus the behind event, in one cycle.
mainadvancedb1a6da4e16->bdbbd17792(19 upstream commits: parser/plan/aggregate/function fixes, fileservice ENOSPC handling, race-UT runtime reduction, Sirius update; zero file overlap with this PR's delta). The rebase auto-merged;git range-diffconfirms all twelve prior commits patch-equivalent.fix(alter): retain workspace-owned snapshot on copy return):alterTableCopyno longer rewinds only the transaction timestamp after the pre-copydatabranchutils.AdvanceLineageSnapshotworkspace advancement. The rewind defer reintroduced by this PR's first commit was the exact defect main's fix: preserve tombstones across lineage snapshot advances #29539 removed; afterWorkspace.AdvanceSnapshotrelocates transaction-local tombstones, a timestamp-only rewind leaves the workspace and snapshot in different generations and resurrects relocated deletes of earlier uncommitted DML. The workspace-owned advanced snapshot is now retained on every return path, matching the publication-side advance and the other owners; the duplicatedisTemp/non-temporary advance branches collapsed into one mode-gated call. The design doc records the ownership rule and its fix: preserve tombstones across lineage snapshot advances #29539 lineage.TestAlterCopyRetainsWorkspaceAdvancedSnapshotOnEveryReturn(pessimistic-RCScope.AlterTableCopy; anySetSnapshotTSrewind fails the test; retention asserted across the workspace-advance-failure and post-advance physical-copy-failure returns; mutation-verified in both directions) andTestIssue29400CopyAlterKeepsRelocatedWorkspaceDeletesAfterReturn(real cluster: uncommitted in-memory DELETEs survive a forced DN flush and the ALTER COPY return inside the same pessimistic-RC transaction and after commit)../pkg/sql/compile- PASS 14.987s; the canonical race command-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile- PASS 7.286s, no failure in 100 runs; both new roots - PASS; full./pkg/tests/issues- PASS 329.117s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's green CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
ebda98e960(ebda98e960e398f4436338f6353f1064d5009161)Rebased onto current
main501c85ecddafter the behind event (headf0840a56e0was reported behind;mainadvancedbdbbd17792->501c85ecdd). No code change in this cycle.501c85ecdd(perf(test): shorten embed and isolated race process lifetimes, perf(test): shorten embed and isolated race process lifetimes #30249) touchesMakefile,optools/run_ut.sh, andoptools/ut_embedded_schedule_test.goonly — test-infrastructure files with zero overlap with this PR's delta; the rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the prior headf0840a56e0d382b3219b449a69a84a53bc957dbe; only their base changed../pkg/sql/compile- PASS 13.871s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 6.486s, no failure in 100 runs; focused issue roots in./pkg/tests/issues(TestIssue29400CopyAlterKeepsRelocatedWorkspaceDeletesAfterReturn,TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation,TestIssue29400IndependentCopyAltersProgressInPessimisticRC) - PASS 9.997s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
9c2e6a6257(9c2e6a62574f0b34881fb14a48561ebe4cd054dd)Rebased onto current
mainf2093ae4b3after the behind event (headebda98e960was reported behind;mainadvanced501c85ecdd->f2093ae4b3). No code change in this cycle.f2093ae4b3(fix(json): reject wildcard and range paths in JSON_KEYS, fix(json): reject wildcard and range paths in JSON_KEYS #28328) andbb2b725d0a(fix(shardservice): preserve immutable read cache snapshots, fix(shardservice): preserve immutable read cache snapshots #30187) — touchpkg/common/moerr/error.go,pkg/container/bytejson,pkg/shardservice,pkg/sql/plan/functionJSON files, and BVT cases, with zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the approved headebda98e960e398f4436338f6353f1064d5009161; only their base changed, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw) and the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), both recorded onebda98e960, and the amended-design PASS (issuecomment-6186238709) review exactly this code../pkg/sql/compile- PASS 14.281s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 9.351s, no failure in 100 runs; the upstream-adjacent./pkg/common/moerr- PASS 0.492s; focused issue roots in./pkg/tests/issues(TestIssue29400CopyAlterKeepsRelocatedWorkspaceDeletesAfterReturn,TestIssue29400OrdinaryIndexedCreateRegistersTasksAfterCopyPreparation,TestIssue29400IndependentCopyAltersProgressInPessimisticRC) - PASS 8.902s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's terminally green CI run (38688137369, CI Required SUCCESS) is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
ce9ed59493(ce9ed594933ffe3cf2ea8403b561956d1c833eac)Rebased onto current
main461bc8e349after the behind event (head9c2e6a6257was reported behind;mainadvancedf2093ae4b3->461bc8e349). No code change in this cycle.461bc8e349(fix(plan): omit overwritten implicit fulltext ordering, fix(plan): omit overwritten implicit fulltext ordering #30189) andb5a4d5c795(fix(frontend): enforce Starlark OUT and INOUT parameter types, fix(frontend): enforce Starlark OUT and INOUT parameter types #30134) — touchpkg/sql/planfulltext-index files,pkg/frontendStarlark files, and embed/config tests, with zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the approved head9c2e6a62574f0b34881fb14a48561ebe4cd054dd; only their base changed, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 15.167s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 7.856s, no failure in 100 runs; the upstream-modified./pkg/frontend(includes both this PR's whole-transaction rollback roots and upstream's new Starlark roots) - PASS 28.287s; focused issue roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers) - PASS 9.759s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The prior head's in-flight CI run is superseded by this push; the new head produces a fresh CI run.Current exact head after latest rebase:
a0e40253d0(a0e40253d0488e9c9f0b96752dec0724296df85d)Rebased onto current
mainc46b893f61after the behind event (headce9ed59493was reported behind base461bc8e349, then conflicting whilemainadvanced461bc8e349->83222fa837->c46b893f61). No PR-side behavior change in this cycle.83222fa837picks up8795f3699b(revert: restore fulltext planner before fix(plan): omit overwritten implicit fulltext ordering #30189, revert: restore fulltext planner before #30189 #30285), upstream's fix for the CI blocker that failed the previous head's run38703760162: fix(plan): omit overwritten implicit fulltext ordering #30189's widenedtryApplyCoveredFulltext2missed the stale call site atapply_indices_fulltext_snapshot_test.go:180-182and broke thepkg/sql/plantest build, failing SCA Linux/arm64, UT Coverage Ubuntu/x86, and UT Test Ubuntu/x86, blocking the Coverage merge at itsVerify coverage prerequisitesstep, and turning theCI Requiredgatekeeper red — one verified root cause, pre-existing onmain, with this PR contributing zero lines topkg/sql/plan. The current base additionally contains the properly re-landed fulltext worke8b3ed7f21(fix(plan): integrate fulltext ordering and covered score limits, fix(plan): integrate fulltext ordering and covered score limits #30289);mo-cgo-test -run '^$' ./pkg/sql/planpasses on this head, so the defect is gone from the merge result.b6789851ca(fix(compile): retry restores the statement's LAST_INSERT_ID baseline (#29903) #30222) added the statement-retrylastInsertIDBaselineto the exactCompileflag block this PR extends:types.gonow declares both upstream'slastInsertIDBaseline uint64(with its retry-restore comment) and this PR'sskipIndexTaskRegistration bool, andclear()resets both (c.lastInsertIDBaseline = 0upstream;c.skipIndexTaskRegistration = falsethis PR, beside the other per-statement flags). Upstream's compile2.go save/restore pair is untouched and this PR's pool boundary is unchanged. Upstreama85d90efc9(test: reduce race fixture work and fix ISCP and cross-CN test synchronization #30334) also added cross-CNSYNCCOMMITfences to its ownTestIssue29400CopyAlterRetainedGatePromotionFastFailsroot insidepkg/tests/issues/issue_29400_test.go; the merged file keeps those fences and this PR's roots. The whitespace part of the resolution was folded into commit 10, preserving the clean 13-commit stack.git range-diffshows eleven PR commits patch-equivalent; commits 10 and 11 differ only by the interleaved upstream field/reset inside their existing hunks — every line the PR itself adds is unchanged, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 34.197s (includes this PR's lifecycle/pool roots and upstream's new retry-baseline and calendar-interval roots); full./pkg/frontend- PASS 21.086s (includes upstream's show-metadata/authenticate changes and this PR's whole-transaction rollback roots);./pkg/sql/planbuild check - ok 1.443s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 4.120s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 11.945s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's red run38703760162(verified upstream-caused) is superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
2f4f928170(2f4f928170cb614dd8570ff6f4151f98dc1d4821)Rebased onto current
main76deafc806after the behind event (heada0e40253d0was reported behind;mainadvancedc46b893f61->76deafc806). No code change in this cycle.76deafc806(fix: report SELECT division-by-zero warnings, fix: report SELECT division-by-zero warnings #30314) touchespkg/sql/compileexpression/remoterun protocol files plus new division-warning test roots,pkg/sql/plan/function/arithmetic.goplus new plan test roots, regeneratedpkg/pb/pipeline,pkg/defines, andpkg/sql/colexec— with zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous heada0e40253d0, which itself carried the documented semantic interleave with upstream fix(compile): retry restores the statement's LAST_INSERT_ID baseline (#29903) #30222/test: reduce race fixture work and fix ISCP and cross-CN test synchronization #30334 inside commits 10/11; the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 17.188s (includes this PR's lifecycle/pool roots and upstream's new division-warning protocol roots);./pkg/sql/planbuild check - ok 1.925s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 7.492s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 13.674s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI run38843646044is superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
02ec55ad2d(02ec55ad2dc9033a20053fe34ca0ef29957ebfaa)Rebased onto current
mainb24d1b3115after the behind event (head2f4f928170was reported behind;mainadvanced76deafc806->b24d1b3115). No code change in this cycle.b24d1b3115(fix(window): support temporal interval frame parameters and string parsing, fix(window): support temporal interval frame parameters and string parsing #30310) addspkg/container/types/window_interval.go,pkg/sql/colexec/window/interval*,pkg/sql/plan/visit_plan_rule.gochanges, and incrementspkg/sql/compile/compile.go(+6),compile2.go(+4), andcompile_test.go(+27). The rebase auto-merged; the previously documentedclear()/constructor interleave (upstreamlastInsertIDBaselinebeside this PR'sskipIndexTaskRegistration) is unchanged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head2f4f928170, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 13.762s (includes upstream's new window-frame roots and this PR's lifecycle/pool roots);./pkg/sql/planbuild check - ok 1.486s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 9.581s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 13.433s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI run38847713751is superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
da8284097c(da8284097c5449367456c7ce614d8fb4c9f66f38)Rebased onto current
mainac55588b8dafter the behind event (head02ec55ad2dwas reported behind;mainadvancedb24d1b3115->ac55588b8d). No code change in this cycle.ac55588b8d(fix(lockservice): balance row waiter and range ownership lifetimes, fix(lockservice): balance row waiter and range ownership lifetimes #30321) is confined topkg/lockservice(lock_table_local.go,waiter_events.go, and new waiter-retry/conditional-unlock/benchmark tests) — zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head02ec55ad2d, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/lockservice- PASS 71.228s (upstream's new waiter-retry and conditional-unlock roots; the lock service owns the gate/source locks this PR's pessimistic publication paths acquire); full./pkg/sql/compile- PASS 27.274s;./pkg/sql/planbuild check - ok 2.581s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 10.463s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 15.447s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's CI run38849507295(build, SCA Linux/arm64, UT Coverage, Coverage, proxy and multi-CN pessimistic BVT all SUCCESS; UT Test still running when the behind event arrived) is superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
6b2e7efd14(6b2e7efd14359649c6bc245facacaed5d12c1c54)Rebased onto current
mainad0568a82cafter the behind event (headda8284097cwas reported behind;mainadvancedac55588b8d->ad0568a82c). No code change in this cycle.ad0568a82c(refactor(sirius): use embedded MO readers and remove Flight, refactor(sirius): use embedded MO readers and remove Flight #30251) rewrites the Sirius/sidecar surface across 88 files (pkg/sql/compile/sirius*,sidecarflight/,siriusbridge/,pkg/sql/plan/substrait/*,pkg/vm/engine/disttae/{txn.go,object_list.go,sidecar/,logtailreplay/object_list.go}, design docs). Its only direct file overlap with this PR's delta ispkg/vm/engine/disttae/txn_table_delegate.go, where upstream removed the sidecar snapshot-visit methods (VisitSnapshotObjects,HasSnapshotTombstones,CanVisitSnapshotLocally) while this PR addsCreatedInCurrentTxnbetweenCollectChangesandCollectObjectList; the hunks are disjoint, the rebase auto-merged, and the merged file keeps both sides' intent — the PR's delegate method is intact, the upstream removals are applied, and no PR-added code references any removed symbol.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous headda8284097c, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 14.912s (upstream's embedded-Sirius rewrite compiled together with this PR's lifecycle/pool roots); full./pkg/vm/engine/disttae- PASS 7.276s; full./pkg/vm/engine/disttae/logtailreplay- PASS 7.853s;./pkg/sql/planbuild check - ok 4.558s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 5.851s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 12.849s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI runs (38862657021family, started forda8284097c) are superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
bae0af149e(bae0af149e5a10b00c16e133c7ca74bd34098a71)Rebased onto current
main2305954d0bafter the behind event (head6b2e7efd14was reported behind base575d57ae55; while handling it,mainhad already advanced to2305954d0b). No code change in this cycle.575d57ae55(perf(container): speed up column summaries and UTF8 counting, perf(container): speed up column summaries and UTF8 counting #30338) and2305954d0b(perf(spill): amortize bounded writes and incremental recovery projection, perf(spill): amortize bounded writes and incremental recovery projection #30284) — touch 15 files acrosspkg/container/vector,pkg/vectorize/lengthutf8,pkg/sql/colexec/{hashbuild,spillio,spillutil},pkg/sql/plan/function,pkg/vm/engine/tae/index, andpkg/vm/process, with zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head6b2e7efd14, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 13.439s (this PR's lifecycle/pool roots compiled with upstream's vector/spill performance changes);./pkg/sql/planbuild check - ok 1.991s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 9.309s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 14.386s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI runs (38866612162family, started for6b2e7efd14) are superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
604026934a(604026934aa513da88f4698d4456970843ce81c3)Rebased onto current
mainac9dbfeeecafter the behind event (headbae0af149ewas reported behind;mainadvanced2305954d0b->ac9dbfeeecwith the frontend NEWDECIMAL commit that had arrived while the previous rebase was being finalized). No code change in this cycle.ac9dbfeeec(fix(frontend): advertise NEWDECIMAL for SELECT DECIMAL wire metadata, fix(frontend): advertise NEWDECIMAL for SELECT DECIMAL wire metadata #30302) touchespkg/frontend/mysql_protocol.go,pkg/frontend/mysql_protocol_test.go, and the newpkg/frontend/decimal_wire_metadata_test.go— zero file overlap with this PR's delta (the PR's frontend files arerollback_on_error_test.goandutil_test.go). The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous headbae0af149e, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/frontend- PASS 21.463s (upstream's NEWDECIMAL wire-metadata roots compiled together with this PR's rollback roots); full./pkg/sql/compile- PASS 13.873s;./pkg/sql/planbuild check - ok 1.588s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 6.418s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 13.475s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI runs (38868998507/38868998568families, started forbae0af149e) are superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
6ae11fd41e(6ae11fd41e2cf5922e80eb9733ebe9bf4c397ebd)Rebased onto current
main4f9f2e33c9after the behind event (head604026934awas reported behind;mainadvancedac9dbfeeec->4f9f2e33c9). No code change in this cycle.4f9f2e33c9(fix: evict idle lock routes after CN scale-down, fix: evict idle lock routes after CN scale-down #30269) touches 11pkg/lockservicefiles (idle_route*,lock_table_keeper*,lock_table_remote*,rpc.go,service.go) plus a new isolated issue root inpkg/tests/issues/isolated/— zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head604026934a, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/lockservice- PASS 89.576s (upstream's new idle-route eviction/cleanup/publication roots); full./pkg/sql/compile- PASS 14.138s;./pkg/sql/planbuild check - ok 1.637s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 14.032s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 20.618s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI runs (38870465190/38870465055families, started for604026934a) are superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
0a4cedb775(0a4cedb775f184a73f1ecba2713d90c3dbb1e01d)Rebased onto current
mainc2b990cd71after the behind event (head6ae11fd41ewas reported behind;mainadvanced4f9f2e33c9->c2b990cd71with the two commits that had arrived while the previous rebase was being finalized). No code change in this cycle.61e8b454ce(fix(frontend): scope role-rule invalidation to owning account, fix(frontend): scope role-rule invalidation to owning account #30358, inpkg/frontend/{authenticate*,rewrite_rule*,session.go}plus accesscontrol BVT cases) andc2b990cd71(fix(process): discard stale automatic spill disk capacity samples, fix(process): discard stale automatic spill disk capacity samples #30356, inpkg/vm/process/execution_resource_budget*/spill_disk_refresh*) — touch 12 files with zero overlap with this PR's delta (the PR's frontend files arerollback_on_error_test.goandutil_test.go). The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head6ae11fd41e, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/frontend- PASS 15.109s (upstream's role-rule invalidation scoping compiled together with this PR's rollback roots); full./pkg/sql/compile- PASS 12.720s;./pkg/sql/planbuild check - ok 1.477s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 6.419s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 15.289s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI runs (38873509822family, started for6ae11fd41e) are superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
6a2b64bb82(6a2b64bb829e46429309e8f7743c7956db855cdf)Rebased onto current
mainb3d6b21fe9after the behind event (head0a4cedb775was reported behind base7c61f67e5d;mainhad advanced past that while the previous rebase was being finalized). No code change in this cycle.9f873692e0(fix(sql): preserve COLLATE expressions and resolve coercibility C04, fix(sql): preserve COLLATE expressions and resolve coercibility (C04) #29892),7c61f67e5d(perf(container): optimize appends, validity ranges and typed reads, perf(container): optimize appends, validity ranges and typed reads #30160), andb3d6b21fe9(fix(frontend): admit native Unicode handshake collations, fix(frontend): admit native Unicode handshake collations #30093) — touch 82 files acrosspkg/common/collation,pkg/container/{nulls,vector},pkg/frontend,pkg/sql/parsers,pkg/sql/plan/{,function},pkg/sql/compile/{remoterun.go,expression*},pkg/pb/plan, and BVT cases. Their only direct file overlap with this PR's delta ispkg/frontend/util_test.go: upstream added itsTestCollectScalarSubqueriesCollateroot near the top of the file while this PR's single-lineTxnWriteConflictrollback assertion sits inTest_isErrorRollbackWholeTxn~1360 lines below — disjoint hunks, the rebase auto-merged, and the merged file keeps both sides verified (NewTxnWriteConflictNoCtxassert present at line 1460; upstream's new root present).git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head0a4cedb775, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/frontend- PASS 20.802s (upstream's collation roots compiled together with this PR's whole-transaction rollback roots); full./pkg/sql/compile- PASS 14.335s (includes upstream's remoterun/expression-protocol changes);./pkg/sql/planbuild check - ok 1.675s (upstream heavily modified plan); the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 7.497s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 15.440s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's in-progress CI runs (38876060429family, started for0a4cedb775) are superseded; this push produces a fresh CI run for the new head.Current exact head after latest rebase:
f6f20a37fd(f6f20a37fd4383a40e6b642ec3804371eeea6445)Rebased onto current
main2cf7684062after a ci_failures event: the previous head6a2b64bb82was behind, and recovery followed the freshness rule (rebase + push supersedes the stale run; no rerun of the stale run was requested). No code change in this cycle.38882194805(attempt 1, old head) failedMatrixone UT Coverage execution / UT Coverage on Ubuntu/x86(job116916731411) with one root —pkg/tests/issues/isolated / TestDropDatabaseAfterCNScaleDown,--- FAIL (26.50s). Verified evidence: the failing root is the isolated embedded-cluster regression test added by upstream fix: evict idle lock routes after CN scale-down #30269 for theDROP DATABASE ... lock table bind changedclass after controlled 3 CN -> 1 CN scale-down (open upstream issue [Bug]: DROP DATABASE fails with lock table bind changed after controlled 3 CN to 1 CN scale-down #29447); the failing window loggedlock table bind changedon a moadmin session, matching the issue's error class; this PR contributes zero lines to every package the test exercises (git diff origin/main...HEAD -- pkg/lockservice pkg/tests/issues/isolated/ pkg/embedis empty). A reproduction record was posted on [Bug]: DROP DATABASE fails with lock table bind changed after controlled 3 CN to 1 CN scale-down #29447 (issuecomment-6214046587), and the CI-blockers tracking comment now records{"blockers":[{"issue":29447,...}]}.5c10d8a99f(fix(compile): execute ALTER VIEW on the schema-qualified database, [Bug]: ALTER VIEW with a qualified target resolves the target in the current database #30296),5f9a8c3138(fix(plan): scalar subqueries in INSERT VALUES, fix(plan): support scalar subqueries in INSERT VALUES with cold admission #30220),14a8d854b0(fix(plan): EXPLAIN sequence formatting, fix(plan): let EXPLAIN format sequence functions in group keys #30386),3478692905(fix(mo-tool): text/blob subtypes in checkpoint DDL, fix(mo-tool): preserve text and blob subtypes in checkpoint DDL #30374),2cf7684062(fix(plan): validate catalog collation metadata before pruning, fix(plan): validate catalog collation metadata before pruning #29056) — intersect this PR's delta only inpkg/sql/compile/ddl.go/ddl_test.go, where upstream'sAlterViewchange (line ~667) is far from this PR'screateTableindex-registration gate (~2346) andTruncateTableadmission (~4083); the hunks are disjoint and the rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous head6a2b64bb82, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 12.758s (includes upstream's ALTER VIEW roots and this PR's lifecycle/pool roots);./pkg/sql/planbuild check - ok 1.302s (three upstream plan commits); the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 8.241s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 204.004s (shared-runner load).gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The fresh CI run for this head supersedes run38882194805.Current exact head after latest rebase:
56fdf0f82c(56fdf0f82c321c5ebcbe763e846874c7399bcf95)Rebased onto current
main6b081a1fcfafter a ci_failures event: the run for the previous head failed during job setup and the PR was behind, so recovery followed the freshness rule (rebase + push; no rerun of the stale run). No code change in this cycle.38890955566(attempt 1, previous head) failedMatrixone UT Coverage execution / UT Coverage on Ubuntu/x86(job116940230290) at theSet up Gostep with##[error]Client network socket disconnected before secure TLS connection was established; checkout had succeeded and every test step was skipped — a transient cold-toolchain provisioning flake, unrelated to any repository code. A matching open upstream issue ([Bug]: UT coverage setup action times out during cold Go/JDK provisioning #28652, "UT coverage setup action times out during cold Go/JDK provisioning") exists, so a reproduction record was posted there (issuecomment-6214432805), no issue was created, and the CI-blockers tracking comment now records both verified blockers with existing issues:#29447(the previous event'sTestDropDatabaseAfterCNScaleDownfailure; its behavior on the new head is still unverified because the superseded run never reached tests) and#28652(this provisioning flake).0bf5bc7058(fix(aggexec): support YEAR input for variance/stddev, [Bug]: statistical aggregates accept YEAR at binding but fail in the executor #30181),8037b4832f(test: give truncate FK identity statements individual operation budgets, test: give truncate FK identity statements individual operation budgets #30383),ec62e1d879(test: fence cross-CN view visibility, test: fence cross-CN view visibility in prepared-reader rebind test #30382),6b081a1fcf(test(iscp): wait for watermark transitions, test(iscp): wait for watermark transitions against the test context budget #30385) — touchpkg/sql/colexec/aggexec/vardev2*,pkg/tests/issues/issue_29852_test.go/issue_30090_test.go,pkg/vm/engine/test/change_handle_test.go, and BVT function cases — zero file overlap with this PR's delta. The rebase auto-merged.git range-diffconfirms all thirteen PR commits patch-equivalent to the previous headf6f20a37fd, so the aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code../pkg/sql/compile- PASS 13.544s;./pkg/sql/planbuild check - ok 1.720s; the canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) - PASS 6.849s, no failure in 100 runs; focused roots in./pkg/tests/issues(relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) - PASS 15.116s.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The fresh CI run for this head supersedes run38890955566.Current exact head after latest rebase: 666ff98 (666ff98)
Rebased onto current
main65bcea5d24after a conflict event (GitHub reportedmergeStateStatus: DIRTY).mainadvanced by eighteen commits; this cycle resolves exactly one genuine content conflict, semantically, inpkg/util/executor/types.go.Why the histories conflicted, and the resolution:
18d5335ee3(Fix: Unify SQL server file access authority #30212, unify SQL server file access authority) and this PR both rewrite the sameStatementOptionstruct block inpkg/util/executor/types.go, which is why GitHub marked the PR DIRTY: upstream added theaccountName/roleNamesession-identity fields behind a three-line comment that also re-split gofmt's field-alignment groups for the first five fields, while this PR (commit 10) realigned the same block to addskipIndexTaskRegistration. The merge is two-sided: the resolved struct keeps upstream's five-field group, its comment, andaccountName/roleName, plus this PR'sskipIndexTaskRegistrationin the recomputed second alignment group;gofmt -lis clean on the result. No line from either side was discarded.alter.go/alter_test.go(upstream85d03e833erewroteupdateNewTableColId's quadratic column-ID map and appendedTestUpdateNewTableColIDnext to this PR's lifecycle surfaces);compile.go(upstream18d5335ee3propagatesWithSessionIdentityinrunSqlWithResultAndOptions— the same helper this PR threadsinternalStatementOptionthrough — pluse44d8f9bef's S3 flush analyze control and7387b96afd's LOAD boundary split;43c4771168's CTAS sequence state inddl.gosits beside this PR'screateTableregistration gate);sql_executor.go(upstream'sParams()error-return and sequence-state plumbing beside this PR'sskipIndexTaskRegistrationassignment);issue_29400_test.go(47b9690d7cgave each subtest of the shared retained-gate root its own deadline, alongside this PR's three roots, unchanged).git range-diffagainst the previous head56fdf0f82cshows twelve of thirteen PR commits patch-equivalent; commit 10 (239bcc963c) differs only by the struct interleave above, so every line the PR itself adds is unchanged. The aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly this code.Tracked CI blockers, resolved and verified: the fresh run for the previous head,
38893412045, completed terminally green —Matrixone UT Coverage execution / UT Coverage on Ubuntu/x86(job116948706903) ran the full suite including the previously failingpkg/tests/issues/isolated/TestDropDatabaseAfterCNScaleDownand concluded success, and theCI Requiredgatekeeper (job117032719116) reported SUCCESS. This verifies the resolution of both tracked blockers on that head:#29447(the isolated CN-scale-down root passed under the same UT Coverage job that failed before) and#28652(theSet up Gocold-toolchain TLS flake did not recur; setup completed and the suite was green). The CI-blockers tracking comment now records both resolutions and tracks no open blockers. The push of this rebased head produces a fresh CI run for the new head.Exact-head validation:
./pkg/sql/compile— PASS 15.816s (upstream's newTestUpdateNewTableColID, sequence-state, load-boundary and analyze-control roots compiled together with this PR's lifecycle/pool roots)../pkg/frontend— PASS 20.115s (upstream's authenticate/export/session changes alongside this PR's whole-transaction rollback roots)../pkg/util/executor— PASS 1.992s (upstream's newoptions_test.goroots and error-returningParams()compiled with this PR'sskipIndexTaskRegistrationoption pair; the merged struct is exercised)../pkg/vm/engine/disttae— PASS 7.783s; full./pkg/vm/engine/disttae/logtailreplay— PASS 2.382s../pkg/sql/planbuild check — ok 2.613s.-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) — PASS 8.731s, no failure in 100 runs../pkg/tests/issuesroots (relocated workspace-delete retention, ordinary indexed-CREATE registration, indexed independent pessimistic-RC publishers, plus upstream's deadline-rescoped retained-gate root in the shared file) — PASS 14.482s.gofmt -lover the delta,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head.Current exact head after exact fix and rebase: 0e0f496 (0e0f496)
Fixes the review P2 from the
666ff988d1review (PRR_kwDOFEPiGM8AAAABS3d1LA, threadPRRT_kwDOFEPiGM6tmjHP): independent COPY ALTER publication failed terminal-fast (MySQL 20706) for HASH-partitioned and AUTO_INCREMENT sources, because service-owned catalog SQL did not inherit the private-preparation lock policy.txnExecutor.Execcompiles the private temporary CREATE withWithDisableLock, but the SQL that CREATE triggers indirectly on the same transaction —partitionservicemetadata INSERTs andincrservicecolumn INSERTs, both executed on service executors with freshStatementOption{}— re-armed public catalog locks publication admission cannot certify as private. (2) The allocator had a second hole beyond the CREATE-path INSERT:reconcileAlterCopyAutoIncrementruns on the outer ALTER context before the gate, and itssvc.SetOffsetUPDATE intomo_catalog.mo_increment_columnsretained public catalog locks even after hop (1) was fixed — reproduced locally before the second fix as the same 20706.pkg/sql/compile/sql_executor.go) marks the statement tree of every lock-free internal statement, and nested executions — service executors included — inheritWithDisableLockfrom that context;reconcileAlterCopyAutoIncrementnow runs inside the same lock-free statement tree. The rows those services write address keys unique to the in-flight private replacement (new table IDs, its partition children, its allocator rows), so the same isolation argument as the nested CREATE applies; nothing was blanket-whitelisted and every unproven retained owner keeps fast-fail. The design doc records the completed scope of the lock-free policy in the preparation section and verification map.alterTableCopythatalterCopyCreateOptionsmade unreachable (SkipIndexTaskRegistrationis always set). The latereplacementAdmission.createNamesassignment inTruncateTableis kept: it has a live consumer —withDropLifecycleinstalls the admission as thedropLifecycleReceipt, and the nested replacement CREATE (whose options carry noWithDisableLock) consultsreceipt.admission.createNamesinpinCreateNames(lifecycle_fk_scope.go:583); removing it would fail delete-mode TRUNCATE's replacement with "CREATE exceeds admitted replacement names".TestIssue29400IndependentCopyAltersProgressInPessimisticRC/held_explicit_transactionnow covers three victim layouts selecting every service-owned catalog write: unaffected IVF-FLAT index, HASH-partitioned, and AUTO_INCREMENT. Mutation-verified on the exact fix lineage: with only the production change reverted, the regression reproduces the review's counterexample exactly — index control PASSes while both new layouts FAIL with 20706 before the holder commits; with the fix all three wait at the gate and succeed.TestIssue29400CopyAlterRetainedGatePromotionFastFailsand the other shared roots stay green.git range-diffshows all thirteen prior commits patch-equivalent (aptend APPROVEPRR_kwDOFEPiGM8AAAABSZFhbw, mo-bot approvePRR_kwDOFEPiGM8AAAABSZQRVg, design PASSes issuecomment-6141109182 and issuecomment-6186238709 continue to review exactly that code) plus the new fourteenth commit. The head is rebased onto currentmain8ed73ff815(ten new upstream commits; only7c2847207d(fix(sql): persist charset defaults and implement table conversion #29374 charset/CONVERT) touches PR files, with additive disjoint hunks — charset fields inalterCopyPkColumnValueUnchanged, theAlterDatabasemagic type, andtxnTable.AlterTableextra-info fields — and the rebase auto-merged)../pkg/sql/compile— PASS 13.110s; focused./pkg/tests/issuesroots (relocated workspace-delete retention, ordinary indexed-CREATE registration, the three-layout independent pessimistic-RC publishers, plus upstream's retained-gate root) — PASS 25.440s; full./pkg/frontend— PASS 22.972s; full./pkg/vm/engine/disttae— PASS 8.039s;./pkg/sql/planbuild check — ok 3.108s; canonical race command ×100 — PASS 6.354s, no failure.gofmt -l,git diff --check, the protected-scope check, and the clean-tree check passed. This push supersedes green CI run38995621936with a fresh run for the new head.Current exact head after latest rebase:
cc26004214(cc2600421437473cb0e9658b139822c3f9ef90a5)Rebased onto current
main3c07fac240after the behind event for the0e0f496225head (the branch was reported behind base154a24d463;mainhad advanced once more by fetch time, and the rebase is onto the current tip). No code change in this cycle.154a24d463(fix(load): keep trailing-CR strip inside the current field, fix(load): keep trailing-CR strip inside the current field #30498, inpkg/sql/util/csvparser/csv_parser.goplus a new test file) and3c07fac240(perf(python-sdk): chunk vector batch inserts in one transaction, perf(python-sdk): chunk vector batch inserts in one transaction #30076, inclients/python/**only) — have zero file overlap with this PR's 27-file delta. The rebase auto-merged.git range-diffconfirms all fourteen PR commits patch-equivalent to the previous head0e0f496225: the thirteen-commit reviewed series plus the service-catalog-SQL fix answering the666ff988d1review P2. The aptend implementation APPROVE (PRR_kwDOFEPiGM8AAAABSZFhbw, re-affirmed asPRR_kwDOFEPiGM8AAAABSpGJUw), the mo-bot approve (PRR_kwDOFEPiGM8AAAABSZQRVg), the design-first PASS (issuecomment-6141109182), and the amended-design PASS (issuecomment-6186238709) continue to review exactly that code; the fourteenth commit remains under XuPeng-SH/reviewer re-review../pkg/sql/compile— PASS 16.367s; full./pkg/frontend— PASS 56.132s; full./pkg/util/executor— PASS 0.688s; full./pkg/vm/engine/disttae— PASS 7.602s; full./pkg/vm/engine/disttae/logtailreplay— PASS 5.448s;./pkg/sql/planbuild check — ok 5.640s; canonical race command (-race -tags matrixone_test -count=100 -timeout=120s -run '^TestCompilePoolHandoffClearsPrivateIndexRegistrationPolicy$' ./pkg/sql/compile) — PASS 14.630s, no failure in 100 runs; the four focused./pkg/tests/issuesroots (relocated workspace-delete retention, ordinary indexed-CREATE registration, the three-layout independent pessimistic-RC publishers, plus upstream's re-fenced retained-gate root in the shared file) — PASS 20.049s.gofmt -lover the delta,git diff --check, the protected-scope check, and the clean-tree check passed on the exact head. The previous head's terminally green CI run39094077072is superseded; this push produces a fresh CI run for the new head.