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

Function TestPipelineFlushForRequestSeries

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

Source from the content-addressed store, hash-verified

3724}
3725
3726func TestPipelineFlushForRequestSeries(t *testing.T) {
3727 t.Parallel()
3728
3729 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
3730 defer cancel()
3731
3732 pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE"))
3733 require.NoError(t, err)
3734 defer closeConn(t, pgConn)
3735
3736 pipeline := pgConn.StartPipeline(ctx)
3737 pipeline.SendPrepare("ps", "select $1::bigint as num", nil)
3738 err = pipeline.Sync()
3739 require.NoError(t, err)
3740
3741 results, err := pipeline.GetResults()
3742 require.NoError(t, err)
3743 sd, ok := results.(*pgconn.StatementDescription)
3744 require.Truef(t, ok, "expected StatementDescription, got: %#v", results)
3745 require.Len(t, sd.Fields, 1)
3746 require.Equal(t, "num", sd.Fields[0].Name)
3747 require.Equal(t, []uint32{pgtype.Int8OID}, sd.ParamOIDs)
3748
3749 results, err = pipeline.GetResults()
3750 require.NoError(t, err)
3751 _, ok = results.(*pgconn.PipelineSync)
3752 require.Truef(t, ok, "expected PipelineSync, got: %#v", results)
3753
3754 pipeline.SendQueryPrepared(`ps`, [][]byte{[]byte("1")}, nil, nil)
3755 pipeline.SendQueryPrepared(`ps`, [][]byte{[]byte("2")}, nil, nil)
3756 pipeline.SendFlushRequest()
3757 err = pipeline.Flush()
3758 require.NoError(t, err)
3759
3760 results, err = pipeline.GetResults()
3761 require.NoError(t, err)
3762 rr, ok := results.(*pgconn.ResultReader)
3763 require.Truef(t, ok, "expected ResultReader, got: %#v", results)
3764 readResult := rr.Read()
3765 require.NoError(t, readResult.Err)
3766 require.Len(t, readResult.Rows, 1)
3767 require.Len(t, readResult.Rows[0], 1)
3768 require.Equal(t, "1", string(readResult.Rows[0][0]))
3769
3770 results, err = pipeline.GetResults()
3771 require.NoError(t, err)
3772 rr, ok = results.(*pgconn.ResultReader)
3773 require.Truef(t, ok, "expected ResultReader, got: %#v", results)
3774 readResult = rr.Read()
3775 require.NoError(t, readResult.Err)
3776 require.Len(t, readResult.Rows, 1)
3777 require.Len(t, readResult.Rows[0], 1)
3778 require.Equal(t, "2", string(readResult.Rows[0][0]))
3779
3780 results, err = pipeline.GetResults()
3781 require.NoError(t, err)
3782 require.Nil(t, results)
3783

Callers

nothing calls this directly

Calls 13

ConnectFunction · 0.92
StartPipelineMethod · 0.80
SendPrepareMethod · 0.80
SyncMethod · 0.80
GetResultsMethod · 0.80
SendQueryPreparedMethod · 0.80
SendFlushRequestMethod · 0.80
closeConnFunction · 0.70
ensureConnValidFunction · 0.70
LenMethod · 0.65
CloseMethod · 0.65
FlushMethod · 0.45

Tested by

no test coverage detected