Fix cache bug
This commit is contained in:
parent
489d996183
commit
fe31f0c906
|
@ -130,7 +130,7 @@ func NewSimpleLogger3(out io.Writer, prefix string, flag int, l LogLevel) *Simpl
|
||||||
// Error implement ILogger
|
// Error implement ILogger
|
||||||
func (s *SimpleLogger) Error(v ...interface{}) {
|
func (s *SimpleLogger) Error(v ...interface{}) {
|
||||||
if s.level <= LOG_ERR {
|
if s.level <= LOG_ERR {
|
||||||
s.ERR.Output(2, fmt.Sprint(v...))
|
s.ERR.Output(2, fmt.Sprintln(v...))
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ func (s *SimpleLogger) Errorf(format string, v ...interface{}) {
|
||||||
// Debug implement ILogger
|
// Debug implement ILogger
|
||||||
func (s *SimpleLogger) Debug(v ...interface{}) {
|
func (s *SimpleLogger) Debug(v ...interface{}) {
|
||||||
if s.level <= LOG_DEBUG {
|
if s.level <= LOG_DEBUG {
|
||||||
s.DEBUG.Output(2, fmt.Sprint(v...))
|
s.DEBUG.Output(2, fmt.Sprintln(v...))
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,7 @@ func (s *SimpleLogger) Debugf(format string, v ...interface{}) {
|
||||||
// Info implement ILogger
|
// Info implement ILogger
|
||||||
func (s *SimpleLogger) Info(v ...interface{}) {
|
func (s *SimpleLogger) Info(v ...interface{}) {
|
||||||
if s.level <= LOG_INFO {
|
if s.level <= LOG_INFO {
|
||||||
s.INFO.Output(2, fmt.Sprint(v...))
|
s.INFO.Output(2, fmt.Sprintln(v...))
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -178,7 +178,7 @@ func (s *SimpleLogger) Infof(format string, v ...interface{}) {
|
||||||
// Warn implement ILogger
|
// Warn implement ILogger
|
||||||
func (s *SimpleLogger) Warn(v ...interface{}) {
|
func (s *SimpleLogger) Warn(v ...interface{}) {
|
||||||
if s.level <= LOG_WARNING {
|
if s.level <= LOG_WARNING {
|
||||||
s.WARN.Output(2, fmt.Sprint(v...))
|
s.WARN.Output(2, fmt.Sprintln(v...))
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,9 +72,9 @@ func (session *Session) Clone() *Session {
|
||||||
|
|
||||||
// Init reset the session as the init status.
|
// Init reset the session as the init status.
|
||||||
func (session *Session) Init() {
|
func (session *Session) Init() {
|
||||||
|
session.statement.Reset()
|
||||||
session.statement.dialect = session.engine.dialect
|
session.statement.dialect = session.engine.dialect
|
||||||
session.statement.Engine = session.engine
|
session.statement.Engine = session.engine
|
||||||
session.statement.Reset()
|
|
||||||
session.showSQL = session.engine.showSQL
|
session.showSQL = session.engine.showSQL
|
||||||
session.isAutoCommit = true
|
session.isAutoCommit = true
|
||||||
session.isCommitedOrRollbacked = false
|
session.isCommitedOrRollbacked = false
|
||||||
|
|
|
@ -282,7 +282,7 @@ func (session *Session) cacheGet(bean interface{}, sqlStr string, args ...interf
|
||||||
tableName := session.statement.TableName()
|
tableName := session.statement.TableName()
|
||||||
cacher := session.engine.getCacher(tableName)
|
cacher := session.engine.getCacher(tableName)
|
||||||
|
|
||||||
session.engine.logger.Debug("[cacheGet] find sql:", newsql, args)
|
session.engine.logger.Debug("[cache] Get SQL:", newsql, args)
|
||||||
table := session.statement.RefTable
|
table := session.statement.RefTable
|
||||||
ids, err := caches.GetCacheSql(cacher, tableName, newsql, args)
|
ids, err := caches.GetCacheSql(cacher, tableName, newsql, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -318,19 +318,19 @@ func (session *Session) cacheGet(bean interface{}, sqlStr string, args ...interf
|
||||||
}
|
}
|
||||||
|
|
||||||
ids = []schemas.PK{pk}
|
ids = []schemas.PK{pk}
|
||||||
session.engine.logger.Debug("[cacheGet] cache ids:", newsql, ids)
|
session.engine.logger.Debug("[cache] cache ids:", newsql, ids)
|
||||||
err = caches.PutCacheSql(cacher, ids, tableName, newsql, args)
|
err = caches.PutCacheSql(cacher, ids, tableName, newsql, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
session.engine.logger.Debug("[cacheGet] cache hit sql:", newsql, ids)
|
session.engine.logger.Debug("[cache] cache hit:", newsql, ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(ids) > 0 {
|
if len(ids) > 0 {
|
||||||
structValue := reflect.Indirect(reflect.ValueOf(bean))
|
structValue := reflect.Indirect(reflect.ValueOf(bean))
|
||||||
id := ids[0]
|
id := ids[0]
|
||||||
session.engine.logger.Debug("[cacheGet] get bean:", tableName, id)
|
session.engine.logger.Debug("[cache] get bean:", tableName, id)
|
||||||
sid, err := id.ToString()
|
sid, err := id.ToString()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
@ -343,10 +343,10 @@ func (session *Session) cacheGet(bean interface{}, sqlStr string, args ...interf
|
||||||
return has, err
|
return has, err
|
||||||
}
|
}
|
||||||
|
|
||||||
session.engine.logger.Debug("[cacheGet] cache bean:", tableName, id, cacheBean)
|
session.engine.logger.Debug("[cache] cache bean:", tableName, id, cacheBean)
|
||||||
cacher.PutBean(tableName, sid, cacheBean)
|
cacher.PutBean(tableName, sid, cacheBean)
|
||||||
} else {
|
} else {
|
||||||
session.engine.logger.Debug("[cacheGet] cache hit bean:", tableName, id, cacheBean)
|
session.engine.logger.Debug("[cache] cache hit:", tableName, id, cacheBean)
|
||||||
has = true
|
has = true
|
||||||
}
|
}
|
||||||
structValue.Set(reflect.Indirect(reflect.ValueOf(cacheBean)))
|
structValue.Set(reflect.Indirect(reflect.ValueOf(cacheBean)))
|
||||||
|
|
|
@ -587,10 +587,6 @@ func (statement *Statement) SetExpr(column string, expression interface{}) *Stat
|
||||||
return statement
|
return statement
|
||||||
}
|
}
|
||||||
|
|
||||||
func (statement *Statement) quoteColumnMap() []string {
|
|
||||||
return statement.dialect.Quoter().Strings(statement.columnMap)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Distinct generates "DISTINCT col1, col2 " statement
|
// Distinct generates "DISTINCT col1, col2 " statement
|
||||||
func (statement *Statement) Distinct(columns ...string) *Statement {
|
func (statement *Statement) Distinct(columns ...string) *Statement {
|
||||||
statement.IsDistinct = true
|
statement.IsDistinct = true
|
||||||
|
|
|
@ -234,8 +234,12 @@ func TestUpdateIgnoreOnlyFromDBFields(t *testing.T) {
|
||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
record := assertGetRecord()
|
assertGetRecord()
|
||||||
record.OnlyFromDBField = "test"
|
|
||||||
testEngine.Update(record)
|
_, err = testEngine.ID(1).Update(&TestOnlyFromDBField{
|
||||||
|
OnlyToDBField: "b",
|
||||||
|
OnlyFromDBField: "test",
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
assertGetRecord()
|
assertGetRecord()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue