mirror of https://github.com/go-gorm/gorm.git
Merge pull request #1256 from fobispo-link/master
Issue #1249 fix - replacing $ placeholders in order when logging
This commit is contained in:
commit
2c025b25fe
25
logger.go
25
logger.go
|
@ -12,8 +12,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
defaultLogger = Logger{log.New(os.Stdout, "\r\n", 0)}
|
defaultLogger = Logger{log.New(os.Stdout, "\r\n", 0)}
|
||||||
sqlRegexp = regexp.MustCompile(`(\$\d+)|\?`)
|
sqlRegexp = regexp.MustCompile(`\?`)
|
||||||
|
numericPlaceHolderRegexp = regexp.MustCompile(`\$\d+`)
|
||||||
)
|
)
|
||||||
|
|
||||||
type logger interface {
|
type logger interface {
|
||||||
|
@ -71,11 +72,21 @@ func (logger Logger) Print(values ...interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var formattedValuesLength = len(formattedValues)
|
// differentiate between $n placeholders or else treat like ?
|
||||||
for index, value := range sqlRegexp.Split(values[3].(string), -1) {
|
if numericPlaceHolderRegexp.MatchString(values[3].(string)) {
|
||||||
sql += value
|
sql = values[3].(string)
|
||||||
if index < formattedValuesLength {
|
for index, value := range formattedValues {
|
||||||
sql += formattedValues[index]
|
placeholder := fmt.Sprintf(`\$%d`, index+1)
|
||||||
|
subre := regexp.MustCompile(placeholder)
|
||||||
|
sql = subre.ReplaceAllString(sql, value)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var formattedValuesLength = len(formattedValues)
|
||||||
|
for index, value := range sqlRegexp.Split(values[3].(string), -1) {
|
||||||
|
sql += value
|
||||||
|
if index < formattedValuesLength {
|
||||||
|
sql += formattedValues[index]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue