Fix master/slave bug #2004
|
@ -237,3 +237,31 @@ func (eg *EngineGroup) Slave() *Engine {
|
|||
func (eg *EngineGroup) Slaves() []*Engine {
|
||||
return eg.slaves
|
||||
}
|
||||
|
||||
// Query execcute a select SQL and return the result
|
||||
func (eg *EngineGroup) Query(sqlOrArgs ...interface{}) (resultsSlice []map[string][]byte, err error) {
|
||||
sess := eg.NewSession()
|
||||
sess.isAutoClose = true
|
||||
return sess.Query(sqlOrArgs...)
|
||||
}
|
||||
|
||||
// QueryInterface execcute a select SQL and return the result
|
||||
func (eg *EngineGroup) QueryInterface(sqlOrArgs ...interface{}) ([]map[string]interface{}, error) {
|
||||
sess := eg.NewSession()
|
||||
sess.isAutoClose = true
|
||||
return sess.QueryInterface(sqlOrArgs...)
|
||||
}
|
||||
|
||||
// QueryString execcute a select SQL and return the result
|
||||
func (eg *EngineGroup) QueryString(sqlOrArgs ...interface{}) ([]map[string]string, error) {
|
||||
sess := eg.NewSession()
|
||||
sess.isAutoClose = true
|
||||
return sess.QueryString(sqlOrArgs...)
|
||||
}
|
||||
|
||||
// Rows execcute a select SQL and return the result
|
||||
func (eg *EngineGroup) Rows(bean interface{}) (*Rows, error) {
|
||||
sess := eg.NewSession()
|
||||
sess.isAutoClose = true
|
||||
return sess.Rows(bean)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ package xorm
|
|||
|
||||
import (
|
||||
"database/sql"
|
||||
"strings"
|
||||
|
||||
"xorm.io/xorm/core"
|
||||
)
|
||||
|
@ -32,7 +33,7 @@ func (session *Session) queryRows(sqlStr string, args ...interface{}) (*core.Row
|
|||
|
||||
if session.isAutoCommit {
|
||||
var db *core.DB
|
||||
if session.sessionType == groupSession {
|
||||
if session.sessionType == groupSession && strings.EqualFold(sqlStr[:6], "select") {
|
||||
db = session.engine.engineGroup.Slave().DB()
|
||||
} else {
|
||||
db = session.DB()
|
||||
|
|
Loading…
Reference in New Issue
Block a user