mirror of https://github.com/jackc/pgx.git
Add driver.StmtExecContext support to stdlib.Stmt
parent
f9cb22e4b8
commit
7f226539a0
|
@ -388,6 +388,10 @@ func (s *Stmt) Exec(argsV []driver.Value) (driver.Result, error) {
|
|||
return s.conn.Exec(s.ps.Name, argsV)
|
||||
}
|
||||
|
||||
func (s *Stmt) ExecContext(ctx context.Context, argsV []driver.NamedValue) (driver.Result, error) {
|
||||
return s.conn.ExecContext(ctx, s.ps.Name, argsV)
|
||||
}
|
||||
|
||||
func (s *Stmt) Query(argsV []driver.Value) (driver.Rows, error) {
|
||||
return s.conn.queryPrepared(s.ps.Name, argsV)
|
||||
}
|
||||
|
|
|
@ -1100,3 +1100,51 @@ func TestRowsColumnTypeDatabaseTypeName(t *testing.T) {
|
|||
|
||||
ensureConnValid(t, db)
|
||||
}
|
||||
|
||||
func TestStmtExecContextSuccess(t *testing.T) {
|
||||
db := openDB(t)
|
||||
defer closeDB(t, db)
|
||||
|
||||
_, err := db.Exec("create temporary table t(id int primary key)")
|
||||
if err != nil {
|
||||
t.Fatalf("db.Exec failed: %v", err)
|
||||
}
|
||||
|
||||
stmt, err := db.Prepare("insert into t(id) values ($1::int4)")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer stmt.Close()
|
||||
|
||||
_, err = stmt.ExecContext(context.Background(), 42)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
ensureConnValid(t, db)
|
||||
}
|
||||
|
||||
func TestStmtExecContextCancel(t *testing.T) {
|
||||
db := openDB(t)
|
||||
defer closeDB(t, db)
|
||||
|
||||
_, err := db.Exec("create temporary table t(id int primary key)")
|
||||
if err != nil {
|
||||
t.Fatalf("db.Exec failed: %v", err)
|
||||
}
|
||||
|
||||
stmt, err := db.Prepare("insert into t(id) select $1::int4 from pg_sleep(5)")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer stmt.Close()
|
||||
|
||||
ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
||||
|
||||
_, err = stmt.ExecContext(ctx, 42)
|
||||
if err != context.DeadlineExceeded {
|
||||
t.Errorf("err => %v, want %v", err, context.DeadlineExceeded)
|
||||
}
|
||||
|
||||
ensureConnValid(t, db)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue