Skip to content

Commit ce27918

Browse files
committed
SQL Server: Fixed an issue where ROLLBACK TRANSACTION without a savepoint was not recognized as ending the transaction, causing the prompt to remain as SQL*
1 parent 50f0461 commit ce27918

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

loop.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,18 @@ func (ss *session) Loop(ctx context.Context, commandIn commandIn) error {
164164
err = doSelect(ctx, ss, query, nil, commandIn)
165165
case "ROLLBACK":
166166
misc.Echo(ss.spool, query)
167-
arg, _ = misc.CutField(arg)
167+
var rest string
168+
arg, rest = misc.CutField(arg)
168169
if arg == "" {
169170
err = ss.rollback()
170-
} else if strings.EqualFold(arg, "TO") || strings.EqualFold(arg, "TRANSACTION") {
171+
} else if strings.EqualFold(arg, "TO") {
171172
err = doTCL(ctx, ss, query)
173+
} else if strings.EqualFold(arg, "TRANSACTION") {
174+
if strings.TrimSpace(rest) == "" {
175+
err = ss.rollback()
176+
} else {
177+
err = doTCL(ctx, ss, query)
178+
}
172179
} else {
173180
err = ErrInvalidRollback
174181
}

0 commit comments

Comments
 (0)