(t *testing.T)
| 10 | ) |
| 11 | |
| 12 | func TestPipelineWithoutPreparedOrDescribedStatements(t *testing.T) { |
| 13 | t.Parallel() |
| 14 | |
| 15 | defaultConnTestRunner.RunTest(context.Background(), t, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { |
| 16 | pipeline := conn.PgConn().StartPipeline(ctx) |
| 17 | |
| 18 | eqb := pgx.ExtendedQueryBuilder{} |
| 19 | |
| 20 | err := eqb.Build(conn.TypeMap(), nil, []any{1, 2}) |
| 21 | require.NoError(t, err) |
| 22 | pipeline.SendQueryParams(`select $1::bigint + $2::bigint`, eqb.ParamValues, nil, eqb.ParamFormats, eqb.ResultFormats) |
| 23 | |
| 24 | err = eqb.Build(conn.TypeMap(), nil, []any{3, 4, 5}) |
| 25 | require.NoError(t, err) |
| 26 | pipeline.SendQueryParams(`select $1::bigint + $2::bigint + $3::bigint`, eqb.ParamValues, nil, eqb.ParamFormats, eqb.ResultFormats) |
| 27 | |
| 28 | err = pipeline.Sync() |
| 29 | require.NoError(t, err) |
| 30 | |
| 31 | results, err := pipeline.GetResults() |
| 32 | require.NoError(t, err) |
| 33 | rr, ok := results.(*pgconn.ResultReader) |
| 34 | require.True(t, ok) |
| 35 | rows := pgx.RowsFromResultReader(conn.TypeMap(), rr) |
| 36 | |
| 37 | rowCount := 0 |
| 38 | var n int64 |
| 39 | for rows.Next() { |
| 40 | err = rows.Scan(&n) |
| 41 | require.NoError(t, err) |
| 42 | rowCount++ |
| 43 | } |
| 44 | require.NoError(t, rows.Err()) |
| 45 | require.Equal(t, 1, rowCount) |
| 46 | require.Equal(t, "SELECT 1", rows.CommandTag().String()) |
| 47 | require.EqualValues(t, 3, n) |
| 48 | |
| 49 | results, err = pipeline.GetResults() |
| 50 | require.NoError(t, err) |
| 51 | rr, ok = results.(*pgconn.ResultReader) |
| 52 | require.True(t, ok) |
| 53 | rows = pgx.RowsFromResultReader(conn.TypeMap(), rr) |
| 54 | |
| 55 | rowCount = 0 |
| 56 | n = 0 |
| 57 | for rows.Next() { |
| 58 | err = rows.Scan(&n) |
| 59 | require.NoError(t, err) |
| 60 | rowCount++ |
| 61 | } |
| 62 | require.NoError(t, rows.Err()) |
| 63 | require.Equal(t, 1, rowCount) |
| 64 | require.Equal(t, "SELECT 1", rows.CommandTag().String()) |
| 65 | require.EqualValues(t, 12, n) |
| 66 | |
| 67 | results, err = pipeline.GetResults() |
| 68 | require.NoError(t, err) |
| 69 | _, ok = results.(*pgconn.PipelineSync) |
nothing calls this directly
no test coverage detected