Implement RESET ALL with startup snapshot prepare/commit - #976
Conversation
Capture reset baselines after defaults, config, flags and --set, before both init-command forms. Prepare and validate changed supported values without mutating the live registry, then commit assignments and retire targeted LOCAL undo only after whole-operation success. Fixes #484 Co-authored-by: apstndb <apstndb@users.noreply.github.com>
Co-authored-by: apstndb <apstndb@users.noreply.github.com>
Code Metrics Report📊 View detailed coverage report (available for 7 days)
Details | | main (31f52f5) | #976 (ed860c5) | +/- |
|---------------------|----------------|----------------|-------|
- | Coverage | 86.8% | 86.5% | -0.4% |
| Files | 112 | 113 | +1 |
| Lines | 10486 | 10674 | +188 |
+ | Covered | 9112 | 9237 | +125 |
+ | Code to Test Ratio | 1:2.2 | 1:2.2 | +0.0 |
| Code | 23491 | 23845 | +354 |
+ | Test | 53348 | 54175 | +827 |
- | Test Execution Time | 2m0s | 2m1s | +1s |Code coverage of files in pull request scope (88.7% → 87.0%, patch 60.6%)
Reported by octocov |
Co-authored-by: apstndb <apstndb@users.noreply.github.com>
|
Reviewed [P2] Compare the writable TRANSACTION_TAG slot, not the SHOW value, when deciding whether RESET is unchanged. The equality check in Independently reproduced with the existing
Use explicit reset snapshot/equality semantics for this handler, preserving the locked transaction-tag guard and the general skip-unchanged-before-guards rule. Do not change SHOW semantics to fix RESET. Cover both directions, pending/RO owners, and LOCAL undo behavior; after a failed complete reset, no values or undo entries may change. This is exactly the custom-state case that needs tested reset support rather than assuming every display string represents the mutable setting. The existing focused RESET/capture tests passed independently. Both additional Go-overlay probes fail as described; tracked files remain unchanged. Please also integrate current main additively before final validation, run full make check (capture output and actual exit) before pushing, and own all applicable CI. |
RESET capture and unchanged-equality now use ResetSnapshot for TRANSACTION_TAG so SHOW (applied RW tag) is not mistaken for the next-owner slot. Consumed nonempty startup tags hit the existing RW guard; empty startup that already matches the consumed slot skips the guard and still resets unrelated variables. Co-authored-by: apstndb <apstndb@users.noreply.github.com>
|
Fixed in RESET capture and unchanged-equality now use |
|
Independent coordinator confirmation on exact HEAD Codex P2 is in that HEAD: RESET compares the writable TRANSACTION_TAG next-owner slot via {"repo":"apstndb/spanner-mycli","pr":976,"head":"e359a2aa463ff953b9f3afa334dfca6681c4d2c8","base":"92f986d6a7ab74566bee82f318b8c44e9f340820","validation":["hosted test/lint/race/readme-sync/govulncheck/cross-compile success on exact HEAD","local make check exit 0","local make check-race exit 0","MERGEABLE CLEAN","no unresolved review threads"],"deviations":[],"blockers":[]} |
|
Independent review of HEAD Both independent transaction-tag overlay probes, focused RESET/capture tests, full Docker Main advanced through #974 during validation. Please perform the additive main merge for final integration, preserving both DDL_EXECUTION_MODE/DDL_ASYNC_WAIT_TIMEOUT reset support and the tag fix, run the mandatory gate before push, and handle all CI. Codex will verify that integration HEAD before merging. |
|
Withdrawing the ready JSON for |
Co-authored-by: apstndb <apstndb@users.noreply.github.com>
|
Additive-merged README, docs, and |
|
Confirmed on merge HEAD
Shared README/docs/ |
|
Independent coordinator confirmation on exact HEAD Additive main merge. Worker reports TRANSACTION_TAG RESET still uses {"repo":"apstndb/spanner-mycli","pr":976,"head":"3c1d006dec0e855afc96a98a924e7dafc5ba7b7a","base":"31f52f5330ec67336d832a9b6da1e1c2b562617c","validation":["hosted test/lint/race/readme-sync/govulncheck/cross-compile success on exact HEAD","worker local make check exit 0","MERGEABLE CLEAN","no unresolved review threads"],"deviations":[],"blockers":[]} |
|
Independent review of integration HEAD An additional integration probe passed on this HEAD: startup --set overrides for DDL_EXECUTION_MODE and DDL_ASYNC_WAIT_TIMEOUT are restored by RESET ALL after both are changed. The original transaction-tag reproductions, focused reset tests, full Docker make check and make check-race passed independently on the accepted feature HEAD; those results remain attributed there. All nine applicable current-head CI checks passed, the conditional Dependabot automerge job is skipped, and no unresolved review feedback remains. |
Fixes #484
RESET ALL restores resettable session variables to the values captured after defaults, config, flags, and
--set, and before both--init-commandforms. Init-command SQL stays ordinary SQL and can be reset.Behavior
Reset(name)/ResetAllcore. Single-variableRESET <name>parsing stays in Support RESET of a single session variable using startup values #960.Validation
make checkpassed locally on this head (Docker + golangci-lint v2.13.2).