2
0

Merge pull request #657 from malstoun/panicfix

Add arguments count check to execParamsAndPreparedPrefix
This commit is contained in:
Jack Christensen
2020-01-04 08:29:19 -06:00
committed by GitHub
2 changed files with 10 additions and 0 deletions
+4
View File
@@ -501,6 +501,10 @@ func (c *Conn) execSimpleProtocol(ctx context.Context, sql string, arguments []i
}
func (c *Conn) execParamsAndPreparedPrefix(sd *pgconn.StatementDescription, arguments []interface{}) error {
if len(sd.ParamOIDs) != len(arguments) {
return errors.Errorf("expected %d arguments, got %d", len(sd.ParamOIDs), len(arguments))
}
c.eqb.Reset()
args, err := convertDriverValuers(arguments)
+6
View File
@@ -200,6 +200,12 @@ func TestExecFailureWithArguments(t *testing.T) {
t.Fatal("Expected SQL syntax error")
}
assert.False(t, pgconn.SafeToRetry(err))
_, err = conn.Exec(context.Background(), "select $1::varchar(1);", "1", "2")
if err == nil {
t.Fatal("Expected pgx arguments count error", err)
}
assert.Equal(t, "expected 1 arguments, got 2", err.Error())
}
func TestExecContextWithoutCancelation(t *testing.T) {