Fix dbSavepoint.Begin recursive self call
It needed to call the inner tx. fixes #633
This commit is contained in:
@@ -261,7 +261,7 @@ func (sp *dbSavepoint) Begin(ctx context.Context) (Tx, error) {
|
|||||||
return nil, ErrTxClosed
|
return nil, ErrTxClosed
|
||||||
}
|
}
|
||||||
|
|
||||||
return sp.Begin(ctx)
|
return sp.tx.Begin(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit releases the savepoint essentially committing the pseudo nested transaction.
|
// Commit releases the savepoint essentially committing the pseudo nested transaction.
|
||||||
|
|||||||
+16
-1
@@ -269,6 +269,21 @@ func TestTxNestedTransactionCommit(t *testing.T) {
|
|||||||
t.Fatalf("nestedTx.Exec failed: %v", err)
|
t.Fatalf("nestedTx.Exec failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
doubleNestedTx, err := nestedTx.Begin(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = doubleNestedTx.Exec(context.Background(), "insert into foo(id) values (3)")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("doubleNestedTx.Exec failed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = doubleNestedTx.Commit(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("doubleNestedTx.Commit failed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
err = nestedTx.Commit(context.Background())
|
err = nestedTx.Commit(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("nestedTx.Commit failed: %v", err)
|
t.Fatalf("nestedTx.Commit failed: %v", err)
|
||||||
@@ -284,7 +299,7 @@ func TestTxNestedTransactionCommit(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("QueryRow Scan failed: %v", err)
|
t.Fatalf("QueryRow Scan failed: %v", err)
|
||||||
}
|
}
|
||||||
if n != 2 {
|
if n != 3 {
|
||||||
t.Fatalf("Did not receive correct number of rows: %v", n)
|
t.Fatalf("Did not receive correct number of rows: %v", n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user