(t *testing.T)
| 3963 | } |
| 3964 | |
| 3965 | func TestPipelineGetResultsHandlesPartiallyReadResults(t *testing.T) { |
| 3966 | t.Parallel() |
| 3967 | |
| 3968 | ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) |
| 3969 | defer cancel() |
| 3970 | |
| 3971 | pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE")) |
| 3972 | require.NoError(t, err) |
| 3973 | defer closeConn(t, pgConn) |
| 3974 | |
| 3975 | sd, err := pgConn.Prepare(ctx, "ps", "select n from generate_series($1::int, $2::int) n", nil) |
| 3976 | require.NoError(t, err) |
| 3977 | |
| 3978 | pipeline := pgConn.StartPipeline(ctx) |
| 3979 | pipeline.SendQueryStatement(sd, [][]byte{[]byte("1"), []byte("3")}, nil, nil) |
| 3980 | pipeline.SendQueryStatement(sd, [][]byte{[]byte("5"), []byte("7")}, nil, nil) |
| 3981 | err = pipeline.Sync() |
| 3982 | require.NoError(t, err) |
| 3983 | |
| 3984 | results, err := pipeline.GetResults() |
| 3985 | require.NoError(t, err) |
| 3986 | rr, ok := results.(*pgconn.ResultReader) |
| 3987 | require.Truef(t, ok, "expected ResultReader, got: %#v", results) |
| 3988 | require.True(t, rr.NextRow()) |
| 3989 | require.Equal(t, "1", string(rr.Values()[0])) |
| 3990 | |
| 3991 | results, err = pipeline.GetResults() |
| 3992 | require.NoError(t, err) |
| 3993 | rr, ok = results.(*pgconn.ResultReader) |
| 3994 | require.Truef(t, ok, "expected ResultReader, got: %#v", results) |
| 3995 | require.True(t, rr.NextRow()) |
| 3996 | require.Equal(t, "5", string(rr.Values()[0])) |
| 3997 | require.True(t, rr.NextRow()) |
| 3998 | require.Equal(t, "6", string(rr.Values()[0])) |
| 3999 | |
| 4000 | err = pipeline.Close() |
| 4001 | require.NoError(t, err) |
| 4002 | |
| 4003 | ensureConnValid(t, pgConn) |
| 4004 | } |
| 4005 | |
| 4006 | func TestPipelineCloseReadsUnreadResults(t *testing.T) { |
| 4007 | t.Parallel() |
nothing calls this directly
no test coverage detected