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

Function TestPipelineCloseReadsUnreadResults

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

Source from the content-addressed store, hash-verified

4004}
4005
4006func TestPipelineCloseReadsUnreadResults(t *testing.T) {
4007 t.Parallel()
4008
4009 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
4010 defer cancel()
4011
4012 pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE"))
4013 require.NoError(t, err)
4014 defer closeConn(t, pgConn)
4015
4016 sd, err := pgConn.Prepare(ctx, "ps", "select $1::text as msg", nil)
4017 require.NoError(t, err)
4018
4019 pipeline := pgConn.StartPipeline(ctx)
4020 pipeline.SendQueryParams(`select 1`, nil, nil, nil, nil)
4021 pipeline.SendQueryParams(`select 2`, nil, nil, nil, nil)
4022 pipeline.SendQueryParams(`select 3`, nil, nil, nil, nil)
4023 err = pipeline.Sync()
4024 require.NoError(t, err)
4025
4026 pipeline.SendQueryParams(`select 4`, nil, nil, nil, nil)
4027 pipeline.SendQueryParams(`select 5`, nil, nil, nil, nil)
4028 err = pipeline.Sync()
4029 require.NoError(t, err)
4030
4031 pipeline.SendQueryStatement(sd, [][]byte{[]byte("6")}, nil, nil)
4032 pipeline.SendQueryStatement(sd, [][]byte{[]byte("7")}, nil, nil)
4033 err = pipeline.Sync()
4034 require.NoError(t, err)
4035
4036 results, err := pipeline.GetResults()
4037 require.NoError(t, err)
4038 rr, ok := results.(*pgconn.ResultReader)
4039 require.Truef(t, ok, "expected ResultReader, got: %#v", results)
4040 readResult := rr.Read()
4041 require.NoError(t, readResult.Err)
4042 require.Len(t, readResult.Rows, 1)
4043 require.Len(t, readResult.Rows[0], 1)
4044 require.Equal(t, "1", string(readResult.Rows[0][0]))
4045
4046 err = pipeline.Close()
4047 require.NoError(t, err)
4048
4049 ensureConnValid(t, pgConn)
4050}
4051
4052func TestPipelineCloseDetectsUnsyncedRequests(t *testing.T) {
4053 t.Parallel()

Callers

nothing calls this directly

Calls 12

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

Tested by

no test coverage detected