MCPcopy
hub / github.com/jackc/pgx / TestPipelineQueryErrorBetweenSyncs

Function TestPipelineQueryErrorBetweenSyncs

pgconn/pgconn_test.go:3520–3625  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3518}
3519
3520func TestPipelineQueryErrorBetweenSyncs(t *testing.T) {
3521 t.Parallel()
3522
3523 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
3524 defer cancel()
3525
3526 pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE"))
3527 require.NoError(t, err)
3528 defer closeConn(t, pgConn)
3529
3530 pipeline := pgConn.StartPipeline(ctx)
3531 pipeline.SendQueryParams(`select 1`, nil, nil, nil, nil)
3532 pipeline.SendQueryParams(`select 2`, nil, nil, nil, nil)
3533 err = pipeline.Sync()
3534 require.NoError(t, err)
3535
3536 pipeline.SendQueryParams(`select 3`, nil, nil, nil, nil)
3537 pipeline.SendQueryParams(`select 1/(3-n) from generate_series(1,10) n`, nil, nil, nil, nil)
3538 pipeline.SendQueryParams(`select 4`, nil, nil, nil, nil)
3539 err = pipeline.Sync()
3540 require.NoError(t, err)
3541
3542 pipeline.SendQueryParams(`select 5`, nil, nil, nil, nil)
3543 pipeline.SendQueryParams(`select 6`, nil, nil, nil, nil)
3544 err = pipeline.Sync()
3545 require.NoError(t, err)
3546
3547 results, err := pipeline.GetResults()
3548 require.NoError(t, err)
3549 rr, ok := results.(*pgconn.ResultReader)
3550 require.Truef(t, ok, "expected ResultReader, got: %#v", results)
3551 readResult := rr.Read()
3552 require.NoError(t, readResult.Err)
3553 require.Len(t, readResult.Rows, 1)
3554 require.Len(t, readResult.Rows[0], 1)
3555 require.Equal(t, "1", string(readResult.Rows[0][0]))
3556
3557 results, err = pipeline.GetResults()
3558 require.NoError(t, err)
3559 rr, ok = results.(*pgconn.ResultReader)
3560 require.Truef(t, ok, "expected ResultReader, got: %#v", results)
3561 readResult = rr.Read()
3562 require.NoError(t, readResult.Err)
3563 require.Len(t, readResult.Rows, 1)
3564 require.Len(t, readResult.Rows[0], 1)
3565 require.Equal(t, "2", string(readResult.Rows[0][0]))
3566
3567 results, err = pipeline.GetResults()
3568 require.NoError(t, err)
3569 _, ok = results.(*pgconn.PipelineSync)
3570 require.Truef(t, ok, "expected PipelineSync, got: %#v", results)
3571
3572 results, err = pipeline.GetResults()
3573 require.NoError(t, err)
3574 rr, ok = results.(*pgconn.ResultReader)
3575 require.Truef(t, ok, "expected ResultReader, got: %#v", results)
3576 readResult = rr.Read()
3577 require.NoError(t, readResult.Err)

Callers

nothing calls this directly

Calls 10

ConnectFunction · 0.92
StartPipelineMethod · 0.80
SendQueryParamsMethod · 0.80
SyncMethod · 0.80
GetResultsMethod · 0.80
closeConnFunction · 0.70
ensureConnValidFunction · 0.70
LenMethod · 0.65
CloseMethod · 0.65
ReadMethod · 0.45

Tested by

no test coverage detected