From e66341ffa9aaedd9fee511576e2e501738faa281 Mon Sep 17 00:00:00 2001 From: Jonathan Amsterdam Date: Mon, 1 Jun 2020 15:32:59 -0400 Subject: internal/database: Transact supports any isolation level - Add an arg to Transact for the isolation level - Remove TransactSerializable This makes it possible to use other levels, and makes it easier to see which level is being used for each transaction. Change-Id: Iba5e2920b4139e5e2f0f8c6b331a658d7c84f60f Reviewed-on: https://team-review.git.corp.google.com/c/golang/discovery/+/758942 CI-Result: Cloud Build Reviewed-by: Julie Qiu --- internal/database/database_test.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'internal/database/database_test.go') diff --git a/internal/database/database_test.go b/internal/database/database_test.go index 7d95bd83..935b6707 100644 --- a/internal/database/database_test.go +++ b/internal/database/database_test.go @@ -193,7 +193,7 @@ func TestLargeBulkInsert(t *testing.T) { for i := 0; i < size; i++ { vals[i] = i + 1 } - if err := testDB.Transact(ctx, func(db *DB) error { + if err := testDB.Transact(ctx, sql.LevelDefault, func(db *DB) error { return db.BulkInsert(ctx, "test_large_bulk", []string{"i"}, vals, "") }); err != nil { t.Fatal(err) @@ -220,7 +220,7 @@ func TestLargeBulkInsert(t *testing.T) { func TestDBAfterTransactFails(t *testing.T) { ctx := context.Background() var tx *DB - err := testDB.Transact(ctx, func(d *DB) error { + err := testDB.Transact(ctx, sql.LevelDefault, func(d *DB) error { tx = d return nil }) @@ -269,7 +269,7 @@ func TestBulkUpdate(t *testing.T) { for i := 0; i < 50; i++ { values = append(values, i, i) } - err := testDB.Transact(ctx, func(tx *DB) error { + err := testDB.Transact(ctx, sql.LevelDefault, func(tx *DB) error { return tx.BulkInsert(ctx, "bulk_update", cols, values, "") }) if err != nil { @@ -283,7 +283,7 @@ func TestBulkUpdate(t *testing.T) { updateVals[1] = append(updateVals[1], -i) } - err = testDB.Transact(ctx, func(tx *DB) error { + err = testDB.Transact(ctx, sql.LevelDefault, func(tx *DB) error { return tx.BulkUpdate(ctx, "bulk_update", cols, []string{"INT", "INT"}, updateVals) }) if err != nil { @@ -349,7 +349,8 @@ func TestTransactSerializable(t *testing.T) { for i := 0; i < numTransactions; i++ { i := i go func() { - errc <- testDB.TransactSerializable(ctx, func(tx *DB) error { return insertSum(tx, 1+i%2) }) + errc <- testDB.Transact(ctx, sql.LevelSerializable, + func(tx *DB) error { return insertSum(tx, 1+i%2) }) }() } // None of the transactions should fail. -- cgit v1.3