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

Function TestPipelineFlushForSingleRequests

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

Source from the content-addressed store, hash-verified

3625}
3626
3627func 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

Callers

nothing calls this directly

Calls 15

ConnectFunction · 0.92
StartPipelineMethod · 0.80
SendPrepareMethod · 0.80
SendFlushRequestMethod · 0.80
GetResultsMethod · 0.80
SendQueryPreparedMethod · 0.80
SendDeallocateMethod · 0.80
SendQueryParamsMethod · 0.80
SyncMethod · 0.80
closeConnFunction · 0.70
ensureConnValidFunction · 0.70
LenMethod · 0.65

Tested by

no test coverage detected