Modify ToSQL function signature
add error return value
This commit is contained in:
parent
9d82aa5673
commit
983443da0f
14
gorm.go
14
gorm.go
@ -464,15 +464,19 @@ func (db *DB) Use(plugin Plugin) error {
|
||||
|
||||
// ToSQL for generate SQL string.
|
||||
//
|
||||
// db.ToSQL(func(tx *gorm.DB) *gorm.DB {
|
||||
// db.ToSQL(func(tx *gorm.DB) (*gorm.DB, error) {
|
||||
// return tx.Model(&User{}).Where(&User{Name: "foo", Age: 20})
|
||||
// .Limit(10).Offset(5)
|
||||
// .Order("name ASC")
|
||||
// .First(&User{})
|
||||
// .First(&User{}), nil
|
||||
// })
|
||||
func (db *DB) ToSQL(queryFn func(tx *DB) *DB) string {
|
||||
tx := queryFn(db.Session(&Session{DryRun: true, SkipDefaultTransaction: true}))
|
||||
func (db *DB) ToSQL(queryFn func(tx *DB) (*DB, error)) (string, error) {
|
||||
tx, err := queryFn(db.Session(&Session{DryRun: true, SkipDefaultTransaction: true}))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
stmt := tx.Statement
|
||||
|
||||
return db.Dialector.Explain(stmt.SQL.String(), stmt.Vars...)
|
||||
return db.Dialector.Explain(stmt.SQL.String(), stmt.Vars...), nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user