(t *testing.T)
| 3625 | } |
| 3626 | |
| 3627 | func TestPipelineFlushForSingleRequests(t *testing.T) { |
| 3628 | t.Parallel() |
| 3629 | |
| 3630 | ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) |
| 3631 | defer cancel() |
| 3632 | |
| 3633 | pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE")) |
| 3634 | require.NoError(t, err) |
| 3635 | defer closeConn(t, pgConn) |
| 3636 | |
| 3637 | pipeline := pgConn.StartPipeline(ctx) |
| 3638 | |
| 3639 | pipeline.SendPrepare("ps", "select $1::text as msg", nil) |
| 3640 | pipeline.SendFlushRequest() |
| 3641 | err = pipeline.Flush() |
| 3642 | require.NoError(t, err) |
| 3643 | |
| 3644 | results, err := pipeline.GetResults() |
| 3645 | require.NoError(t, err) |
| 3646 | sd, ok := results.(*pgconn.StatementDescription) |
| 3647 | require.Truef(t, ok, "expected StatementDescription, got: %#v", results) |
| 3648 | require.Len(t, sd.Fields, 1) |
| 3649 | require.Equal(t, "msg", sd.Fields[0].Name) |
| 3650 | require.Equal(t, []uint32{pgtype.TextOID}, sd.ParamOIDs) |
| 3651 | |
| 3652 | results, err = pipeline.GetResults() |
| 3653 | require.NoError(t, err) |
| 3654 | require.Nil(t, results) |
| 3655 | |
| 3656 | pipeline.SendQueryPrepared(`ps`, [][]byte{[]byte("hello")}, nil, nil) |
| 3657 | pipeline.SendFlushRequest() |
| 3658 | err = pipeline.Flush() |
| 3659 | require.NoError(t, err) |
| 3660 | |
| 3661 | results, err = pipeline.GetResults() |
| 3662 | require.NoError(t, err) |
| 3663 | rr, ok := results.(*pgconn.ResultReader) |
| 3664 | require.Truef(t, ok, "expected ResultReader, got: %#v", results) |
| 3665 | readResult := rr.Read() |
| 3666 | require.NoError(t, readResult.Err) |
| 3667 | require.Len(t, readResult.Rows, 1) |
| 3668 | require.Len(t, readResult.Rows[0], 1) |
| 3669 | require.Equal(t, "hello", string(readResult.Rows[0][0])) |
| 3670 | |
| 3671 | results, err = pipeline.GetResults() |
| 3672 | require.NoError(t, err) |
| 3673 | require.Nil(t, results) |
| 3674 | |
| 3675 | pipeline.SendDeallocate("ps") |
| 3676 | pipeline.SendFlushRequest() |
| 3677 | err = pipeline.Flush() |
| 3678 | require.NoError(t, err) |
| 3679 | |
| 3680 | results, err = pipeline.GetResults() |
| 3681 | require.NoError(t, err) |
| 3682 | _, ok = results.(*pgconn.CloseComplete) |
| 3683 | require.Truef(t, ok, "expected CloseComplete, got: %#v", results) |
| 3684 |
nothing calls this directly
no test coverage detected