feat: allow -r without argument, defaulting to 0 - #635
Open
David Levy (dlevy-msft-sql) wants to merge 2 commits into
Open
feat: allow -r without argument, defaulting to 0#635David Levy (dlevy-msft-sql) wants to merge 2 commits into
David Levy (dlevy-msft-sql) wants to merge 2 commits into
Conversation
Copilot started reviewing on behalf of
David Levy (dlevy-msft-sql)
January 25, 2026 04:44
View session
There was a problem hiding this comment.
Pull request overview
This PR aims to make the legacy sqlcmd CLI accept -r without an explicit value, defaulting to 0 (redirecting severity ≥ 11 errors to stderr) for parity with ODBC sqlcmd. It updates integer flag parsing and normalization around errors-to-stderr and introduces a dedicated test to validate -r behavior.
Changes:
- Updated
getOptionalIntArgumentto treat an empty flag value as0instead of-1. - Relaxed
normalizeFlagsvalidation for theerrors-to-stderrflag to accept an empty value alongside0and1. - Added
TestErrorsToStderrDefaultValueto exercise-r0/-r1parsing andErrorsToStderrwiring.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| cmd/sqlcmd/sqlcmd.go | Adjusts optional int parsing and errors-to-stderr normalization to accommodate (intended) empty-value handling for -r. |
| cmd/sqlcmd/sqlcmd_test.go | Adds a new test for -r0/-r1 behavior and continues to exercise sqlcmd flag parsing and validation. |
David Levy (dlevy-msft-sql)
added a commit
to dlevy-msft-sql/go-sqlcmd
that referenced
this pull request
Jan 25, 2026
- Remove dead code: empty string case in errorsToStderr switch (unreachable due to early return) - Add test for bare -r flag without argument to verify it defaults to 0
Copilot started reviewing on behalf of
David Levy (dlevy-msft-sql)
January 25, 2026 18:12
View session
Copilot started reviewing on behalf of
David Levy (dlevy-msft-sql)
January 25, 2026 20:12
View session
Copilot started reviewing on behalf of
David Levy (dlevy-msft-sql)
January 25, 2026 21:57
View session
David Levy (dlevy-msft-sql)
requested a review
from David Shiflet (shueybubbles)
January 25, 2026 23:35
ODBC sqlcmd allows -r without an explicit value, defaulting to 0 (enable stderr redirection for severity >= 11). Previously go-sqlcmd required -r0 or -r1 explicitly. Changes: - normalizeFlags: Accept empty value for -r flag - getOptionalIntArgument: Return 0 for empty value instead of -1 - Add tests for bare -r flag
David Levy (dlevy-msft-sql)
force-pushed
the
r-default-fix
branch
from
February 5, 2026 22:06
51c367e to
89e24e9
Compare
Document that the empty-value path only applies to -r (errorsToStderr) bare flag usage; other callers always supply a value.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ODBC sqlcmd allows -r without an explicit value, defaulting to 0 (enable stderr redirection for severity >= 11 errors). Previously go-sqlcmd required -r0 or -r1 explicitly. Changes: - getOptionalIntArgument handles empty value by defaulting to 0
Note: This does NOT fix #604 (sqlcmd -? and -h not working). That issue is about zsh quoting, not -r flag behavior.