(t *testing.T)
| 3518 | } |
| 3519 | |
| 3520 | func 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) |
nothing calls this directly
no test coverage detected