|
@@ -1210,20 +1210,21 @@ func TestStmtMultiRows(t *testing.T) {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// Regression test for
|
|
|
|
|
+// * more than 32 NULL parameters (issue 209)
|
|
|
|
|
+// * more parameters than fit into the buffer (issue 201)
|
|
|
func TestPreparedManyCols(t *testing.T) {
|
|
func TestPreparedManyCols(t *testing.T) {
|
|
|
const numParams = defaultBufSize
|
|
const numParams = defaultBufSize
|
|
|
runTests(t, dsn, func(dbt *DBTest) {
|
|
runTests(t, dsn, func(dbt *DBTest) {
|
|
|
query := "SELECT ?" + strings.Repeat(",?", numParams-1)
|
|
query := "SELECT ?" + strings.Repeat(",?", numParams-1)
|
|
|
- values := make([]sql.NullString, numParams)
|
|
|
|
|
- params := make([]interface{}, numParams)
|
|
|
|
|
- for i := range values {
|
|
|
|
|
- params[i] = &values[i]
|
|
|
|
|
- }
|
|
|
|
|
stmt, err := dbt.db.Prepare(query)
|
|
stmt, err := dbt.db.Prepare(query)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
dbt.Fatal(err)
|
|
dbt.Fatal(err)
|
|
|
}
|
|
}
|
|
|
defer stmt.Close()
|
|
defer stmt.Close()
|
|
|
|
|
+ // create more parameters than fit into the buffer
|
|
|
|
|
+ // which will take nil-values
|
|
|
|
|
+ params := make([]interface{}, numParams)
|
|
|
rows, err := stmt.Query(params...)
|
|
rows, err := stmt.Query(params...)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
stmt.Close()
|
|
stmt.Close()
|