Skip to content

Simplify command execution and result ownership - #97

Merged
apstndb merged 1 commit into
mainfrom
refactor-simplify-execution
Sep 12, 2026
Merged

Simplify command execution and result ownership#97
apstndb merged 1 commit into
mainfrom
refactor-simplify-execution

Conversation

@apstndb

@apstndb apstndb commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Command execution currently selects transaction modes separately for CSV and jq output, duplicating retry and committed-output handling. Prepare SQL, parameters, and jq once; execute the transaction through one path; and format either a live read-only iterator or completed results independently.

DML rows are buffered until commit for JSON, YAML, and CSV, and each retry replaces the previous result. CSV conversion now happens after commit, so conversion failures are reported as committed-output failures. Read-only CSV/lazy jq streaming and row-discard behavior are preserved. The CLI runner receives arguments and context, while the process entrypoint owns signals and exit handling; caller cancellation also reaches jq after SQL completes.

Validation: Go 1.25.13 go build ./...; full go test ./... including the Spanner emulator; golangci-lint v2.12.2 (0 issues). Regression coverage checks retries, commit failures, post-commit output failures across all three formats, DML RETURNING against the emulator, input preparation, and cancellation. Managed Spanner and Windows runtime behavior were not tested.

@apstndb
apstndb merged commit 3bcf2a6 into main Sep 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant