| 368 | } |
| 369 | |
| 370 | func TestLogBatchStatementsOnBatchResultClose(t *testing.T) { |
| 371 | t.Parallel() |
| 372 | |
| 373 | ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) |
| 374 | defer cancel() |
| 375 | |
| 376 | logger := &testLogger{} |
| 377 | tracer := &tracelog.TraceLog{ |
| 378 | Logger: logger, |
| 379 | LogLevel: tracelog.LogLevelTrace, |
| 380 | } |
| 381 | |
| 382 | ctr := defaultConnTestRunner |
| 383 | ctr.CreateConfig = func(ctx context.Context, t testing.TB) *pgx.ConnConfig { |
| 384 | config := defaultConnTestRunner.CreateConfig(ctx, t) |
| 385 | config.Tracer = tracer |
| 386 | return config |
| 387 | } |
| 388 | |
| 389 | pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { |
| 390 | logger.Clear() // Clear any logs written when establishing connection |
| 391 | |
| 392 | batch := &pgx.Batch{} |
| 393 | batch.Queue("select generate_series(1,$1)", 100) |
| 394 | batch.Queue("select 1 = 1;") |
| 395 | |
| 396 | br := conn.SendBatch(ctx, batch) |
| 397 | err := br.Close() |
| 398 | require.NoError(t, err) |
| 399 | |
| 400 | require.Len(t, logger.logs, 3) |
| 401 | assert.Equal(t, "BatchQuery", logger.logs[0].msg) |
| 402 | assert.Equal(t, "select generate_series(1,$1)", logger.logs[0].data["sql"]) |
| 403 | assert.Equal(t, "BatchQuery", logger.logs[1].msg) |
| 404 | assert.Equal(t, "select 1 = 1;", logger.logs[1].data["sql"]) |
| 405 | assert.Equal(t, "BatchClose", logger.logs[2].msg) |
| 406 | }) |
| 407 | } |
| 408 | |
| 409 | func TestLogAcquire(t *testing.T) { |
| 410 | t.Parallel() |