Set STRICT_ALL_TABLES when setting up DB (#1890)

Fixes #1202.
This commit is contained in:
Jacob Hoffman-Andrews 2016-06-06 13:48:16 -07:00
parent 1336c42813
commit 19da2be7ef
2 changed files with 19 additions and 0 deletions

View File

@ -66,6 +66,10 @@ func NewDbMapFromConfig(config *mysql.Config, maxOpenConns int) (*gorp.DbMap, er
dbmap := &gorp.DbMap{Db: db, Dialect: dialect, TypeConverter: BoulderTypeConverter{}}
initTables(dbmap)
_, err = dbmap.Exec("SET sql_mode = 'STRICT_ALL_TABLES';")
if err != nil {
return nil, err
}
return dbmap, err
}

View File

@ -3,9 +3,11 @@ package sa
import (
"database/sql"
"errors"
"strings"
"testing"
"github.com/letsencrypt/boulder/test"
"github.com/letsencrypt/boulder/test/vars"
)
func TestInvalidDSN(t *testing.T) {
@ -58,3 +60,16 @@ func TestNewDbMap(t *testing.T) {
}
}
func TestStrictness(t *testing.T) {
dbMap, err := NewDbMap(vars.DBConnSA, 1)
_, err = dbMap.Exec(`insert into authz set
id="hi", identifier="foo", status="pending", combinations="combos",
registrationID=999999999999999999999999999;`)
if err == nil {
t.Fatal("Expected error when providing out of range value, got none.")
}
if !strings.Contains(err.Error(), "Out of range value for column") {
t.Fatalf("Got wrong type of error: %s", err)
}
}