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.
|
// 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})
|
// return tx.Model(&User{}).Where(&User{Name: "foo", Age: 20})
|
||||||
// .Limit(10).Offset(5)
|
// .Limit(10).Offset(5)
|
||||||
// .Order("name ASC")
|
// .Order("name ASC")
|
||||||
// .First(&User{})
|
// .First(&User{}), nil
|
||||||
// })
|
// })
|
||||||
func (db *DB) ToSQL(queryFn func(tx *DB) *DB) string {
|
func (db *DB) ToSQL(queryFn func(tx *DB) (*DB, error)) (string, error) {
|
||||||
tx := queryFn(db.Session(&Session{DryRun: true, SkipDefaultTransaction: true}))
|
tx, err := queryFn(db.Session(&Session{DryRun: true, SkipDefaultTransaction: true}))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
stmt := tx.Statement
|
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