(t *testing.T)
| 3202 | } |
| 3203 | |
| 3204 | func TestPipelinePrepare(t *testing.T) { |
| 3205 | t.Parallel() |
| 3206 | |
| 3207 | ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) |
| 3208 | defer cancel() |
| 3209 | |
| 3210 | pgConn, err := pgconn.Connect(ctx, os.Getenv("PGX_TEST_DATABASE")) |
| 3211 | require.NoError(t, err) |
| 3212 | defer closeConn(t, pgConn) |
| 3213 | |
| 3214 | result := pgConn.ExecParams(ctx, `create temporary table t (id text primary key)`, nil, nil, nil, nil).Read() |
| 3215 | require.NoError(t, result.Err) |
| 3216 | |
| 3217 | pipeline := pgConn.StartPipeline(ctx) |
| 3218 | pipeline.SendPrepare("selectInt", "select $1::bigint as a", nil) |
| 3219 | pipeline.SendPrepare("selectText", "select $1::text as b", nil) |
| 3220 | pipeline.SendPrepare("selectNoParams", "select 42 as c", nil) |
| 3221 | pipeline.SendPrepare("insertNoResults", "insert into t (id) values ($1)", nil) |
| 3222 | pipeline.SendPrepare("insertNoParamsOrResults", "insert into t (id) values ('foo')", nil) |
| 3223 | err = pipeline.Sync() |
| 3224 | require.NoError(t, err) |
| 3225 | |
| 3226 | results, err := pipeline.GetResults() |
| 3227 | require.NoError(t, err) |
| 3228 | sd, ok := results.(*pgconn.StatementDescription) |
| 3229 | require.Truef(t, ok, "expected StatementDescription, got: %#v", results) |
| 3230 | require.Len(t, sd.Fields, 1) |
| 3231 | require.Equal(t, "a", sd.Fields[0].Name) |
| 3232 | require.Equal(t, []uint32{pgtype.Int8OID}, sd.ParamOIDs) |
| 3233 | |
| 3234 | results, err = pipeline.GetResults() |
| 3235 | require.NoError(t, err) |
| 3236 | sd, ok = results.(*pgconn.StatementDescription) |
| 3237 | require.Truef(t, ok, "expected StatementDescription, got: %#v", results) |
| 3238 | require.Len(t, sd.Fields, 1) |
| 3239 | require.Equal(t, "b", sd.Fields[0].Name) |
| 3240 | require.Equal(t, []uint32{pgtype.TextOID}, sd.ParamOIDs) |
| 3241 | |
| 3242 | results, err = pipeline.GetResults() |
| 3243 | require.NoError(t, err) |
| 3244 | sd, ok = results.(*pgconn.StatementDescription) |
| 3245 | require.Truef(t, ok, "expected StatementDescription, got: %#v", results) |
| 3246 | require.Len(t, sd.Fields, 1) |
| 3247 | require.Equal(t, "c", sd.Fields[0].Name) |
| 3248 | require.Equal(t, []uint32{}, sd.ParamOIDs) |
| 3249 | |
| 3250 | results, err = pipeline.GetResults() |
| 3251 | require.NoError(t, err) |
| 3252 | sd, ok = results.(*pgconn.StatementDescription) |
| 3253 | require.Truef(t, ok, "expected StatementDescription, got: %#v", results) |
| 3254 | require.Len(t, sd.Fields, 0) |
| 3255 | require.Equal(t, []uint32{pgtype.TextOID}, sd.ParamOIDs) |
| 3256 | |
| 3257 | results, err = pipeline.GetResults() |
| 3258 | require.NoError(t, err) |
| 3259 | sd, ok = results.(*pgconn.StatementDescription) |
| 3260 | require.Truef(t, ok, "expected StatementDescription, got: %#v", results) |
| 3261 | require.Len(t, sd.Fields, 0) |
nothing calls this directly
no test coverage detected