Skip to content

Commit 45c898b

Browse files
committed
sql: enable tenant testing for TestSessionFinishRollsBackTxn
Informs: #138912 Epic: CRDB-38970 Release note: None
1 parent 597f4d3 commit 45c898b

File tree

2 files changed

+28
-22
lines changed

2 files changed

+28
-22
lines changed

pkg/sql/conn_executor_test.go

+26-20
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package sql_test
88
import (
99
"context"
1010
gosql "database/sql"
11-
"database/sql/driver"
1211
"fmt"
1312
"net/url"
1413
"strings"
@@ -119,7 +118,7 @@ func TestSessionFinishRollsBackTxn(t *testing.T) {
119118
defer log.Scope(t).Close(t)
120119
aborter := NewTxnAborter()
121120
defer aborter.Close(t)
122-
params, _ := createTestServerParams()
121+
params, _ := createTestServerParamsAllowTenants()
123122
params.Knobs.SQLExecutor = aborter.executorKnobs()
124123
s, mainDB, _ := serverutils.StartServer(t, params)
125124
defer s.Stopper().Stop(context.Background())
@@ -149,36 +148,43 @@ CREATE TABLE t.test (k INT PRIMARY KEY, v TEXT);
149148
for _, state := range tests {
150149
t.Run(state, func(t *testing.T) {
151150
// Create a low-level lib/pq connection so we can close it at will.
152-
pgURL, cleanupDB := sqlutils.PGUrl(
151+
pgURL, cleanup := sqlutils.PGUrl(
153152
t, s.AdvSQLAddr(), state, url.User(username.RootUser))
154-
defer cleanupDB()
155-
c, err := pq.Open(pgURL.String())
156-
if err != nil {
157-
t.Fatal(err)
153+
defer cleanup()
154+
cfg, err := pgx.ParseConfig(pgURL.String())
155+
156+
require.NoError(t, err)
157+
if s.DeploymentMode() == serverutils.SharedProcess {
158+
// In shared-process mode, specifying the virtual cluster is
159+
// required since `default_target_cluster` defaults to `system`.
160+
// In external-process mode, this isn't needed (and neither
161+
// allowed) because it has a separate SQL address.
162+
cfg.RuntimeParams["options"] = fmt.Sprintf(
163+
"-ccluster=%s", serverutils.DefaultTestTenantName)
158164
}
165+
ctx := context.Background()
166+
167+
conn, err := pgx.ConnectConfig(ctx, cfg)
168+
require.NoError(t, err)
169+
159170
connClosed := false
160171
defer func() {
161172
if connClosed {
162173
return
163174
}
164-
if err := c.Close(); err != nil {
175+
if err := conn.Close(ctx); err != nil {
165176
t.Fatal(err)
166177
}
167178
}()
168179

169-
ctx := context.Background()
170-
conn := c.(driver.ConnBeginTx)
171-
txn, err := conn.BeginTx(ctx, driver.TxOptions{})
172-
if err != nil {
173-
t.Fatal(err)
174-
}
175-
tx := txn.(driver.ExecerContext)
176-
if _, err := tx.ExecContext(ctx, "SET TRANSACTION PRIORITY NORMAL", nil); err != nil {
180+
tx, err := conn.BeginTx(ctx, pgx.TxOptions{})
181+
require.NoError(t, err)
182+
if _, err := tx.Exec(ctx, "SET TRANSACTION PRIORITY NORMAL"); err != nil {
177183
t.Fatal(err)
178184
}
179185

180186
if state == "CommitWait" {
181-
if _, err := tx.ExecContext(ctx, "SAVEPOINT cockroach_restart", nil); err != nil {
187+
if _, err := tx.Exec(ctx, "SAVEPOINT cockroach_restart"); err != nil {
182188
t.Fatal(err)
183189
}
184190
}
@@ -191,7 +197,7 @@ CREATE TABLE t.test (k INT PRIMARY KEY, v TEXT);
191197
t.Fatal(err)
192198
}
193199
}
194-
if _, err := tx.ExecContext(ctx, insertStmt, nil); err != nil {
200+
if _, err := tx.Exec(ctx, insertStmt); err != nil {
195201
t.Fatal(err)
196202
}
197203

@@ -200,7 +206,7 @@ CREATE TABLE t.test (k INT PRIMARY KEY, v TEXT);
200206
}
201207

202208
if state == "CommitWait" {
203-
_, err := tx.ExecContext(ctx, "RELEASE SAVEPOINT cockroach_restart", nil)
209+
_, err := tx.Exec(ctx, "RELEASE SAVEPOINT cockroach_restart")
204210
if state == "CommitWait" {
205211
if err != nil {
206212
t.Fatal(err)
@@ -212,7 +218,7 @@ CREATE TABLE t.test (k INT PRIMARY KEY, v TEXT);
212218

213219
// Abruptly close the connection.
214220
connClosed = true
215-
if err := c.Close(); err != nil {
221+
if err := conn.Close(ctx); err != nil {
216222
t.Fatal(err)
217223
}
218224

pkg/testutils/serverutils/test_server_shim.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import (
3838
"github.com/cockroachdb/errors"
3939
)
4040

41-
const defaultTestTenantName = roachpb.TenantName("test-tenant")
41+
const DefaultTestTenantName = roachpb.TenantName("test-tenant")
4242

4343
// defaultTestTenantMessage is a message that is printed when a test is run
4444
// under cluster virtualization. This is useful for debugging test failures.
@@ -322,7 +322,7 @@ func NewServer(params base.TestServerArgs) (TestServerInterface, error) {
322322
}
323323

324324
if params.DefaultTenantName == "" {
325-
params.DefaultTenantName = defaultTestTenantName
325+
params.DefaultTenantName = DefaultTestTenantName
326326
}
327327

328328
srv, err := srvFactoryImpl.New(params)

0 commit comments

Comments
 (0)