Support get dataSourceName on ContextHook for monitor which DB executed SQL #1740
|
@ -54,3 +54,11 @@ func TestMustLogSQL(t *testing.T) {
|
||||||
_, err := testEngine.Table("userinfo").MustLogSQL(true).Get(new(Userinfo))
|
_, err := testEngine.Table("userinfo").MustLogSQL(true).Get(new(Userinfo))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEnableSessionId(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareEngine())
|
||||||
|
testEngine.EnableSessionID(true)
|
||||||
|
assertSync(t, new(Userinfo))
|
||||||
|
_, err := testEngine.Table("userinfo").MustLogSQL(true).Get(new(Userinfo))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
|
@ -120,6 +120,7 @@ type EngineInterface interface {
|
||||||
TableInfo(bean interface{}) (*schemas.Table, error)
|
TableInfo(bean interface{}) (*schemas.Table, error)
|
||||||
TableName(interface{}, ...bool) string
|
TableName(interface{}, ...bool) string
|
||||||
UnMapType(reflect.Type)
|
UnMapType(reflect.Type)
|
||||||
|
EnableSessionID(bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -42,6 +42,7 @@ var (
|
||||||
// enumerate all the context keys
|
// enumerate all the context keys
|
||||||
var (
|
var (
|
||||||
SessionIDKey = "__xorm_session_id"
|
SessionIDKey = "__xorm_session_id"
|
||||||
|
SessionKey = "__xorm_session_key"
|
||||||
SessionShowSQLKey = "__xorm_show_sql"
|
SessionShowSQLKey = "__xorm_show_sql"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
12
session.go
12
session.go
|
@ -102,12 +102,12 @@ func newSessionID() string {
|
||||||
func newSession(engine *Engine) *Session {
|
func newSession(engine *Engine) *Session {
|
||||||
var ctx context.Context
|
var ctx context.Context
|
||||||
if engine.logSessionID {
|
if engine.logSessionID {
|
||||||
ctx = context.WithValue(engine.defaultContext, log.SessionIDKey, newSessionID())
|
ctx = context.WithValue(engine.defaultContext, log.SessionIDKey, newSessionID())
|
||||||
} else {
|
} else {
|
||||||
ctx = engine.defaultContext
|
ctx = engine.defaultContext
|
||||||
}
|
}
|
||||||
|
|
||||||
return &Session{
|
session := &Session{
|
||||||
ctx: ctx,
|
ctx: ctx,
|
||||||
engine: engine,
|
engine: engine,
|
||||||
tx: nil,
|
tx: nil,
|
||||||
|
@ -136,6 +136,10 @@ func newSession(engine *Engine) *Session {
|
||||||
|
|
||||||
sessionType: engineSession,
|
sessionType: engineSession,
|
||||||
}
|
}
|
||||||
|
if engine.logSessionID {
|
||||||
|
session.ctx = context.WithValue(session.ctx, log.SessionKey, session)
|
||||||
|
}
|
||||||
|
return session
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close release the connection from pool
|
// Close release the connection from pool
|
||||||
|
@ -165,6 +169,10 @@ func (session *Session) db() *core.DB {
|
||||||
return session.engine.db
|
return session.engine.db
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (session *Session) Engine() *Engine {
|
||||||
|
return session.engine
|
||||||
|
}
|
||||||
|
|
||||||
func (session *Session) getQueryer() core.Queryer {
|
func (session *Session) getQueryer() core.Queryer {
|
||||||
if session.tx != nil {
|
if session.tx != nil {
|
||||||
return session.tx
|
return session.tx
|
||||||
|
|
Loading…
Reference in New Issue
Block a user