From fe31f0c9065c769164e2c4502ea4dcd908838701 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 27 Feb 2020 08:09:29 +0800 Subject: [PATCH] Fix cache bug --- log/logger.go | 8 ++++---- session.go | 2 +- session_get.go | 12 ++++++------ statement.go | 4 ---- statement_test.go | 10 +++++++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/log/logger.go b/log/logger.go index b5ab9019..eeb63693 100644 --- a/log/logger.go +++ b/log/logger.go @@ -130,7 +130,7 @@ func NewSimpleLogger3(out io.Writer, prefix string, flag int, l LogLevel) *Simpl // Error implement ILogger func (s *SimpleLogger) Error(v ...interface{}) { if s.level <= LOG_ERR { - s.ERR.Output(2, fmt.Sprint(v...)) + s.ERR.Output(2, fmt.Sprintln(v...)) } return } @@ -146,7 +146,7 @@ func (s *SimpleLogger) Errorf(format string, v ...interface{}) { // Debug implement ILogger func (s *SimpleLogger) Debug(v ...interface{}) { if s.level <= LOG_DEBUG { - s.DEBUG.Output(2, fmt.Sprint(v...)) + s.DEBUG.Output(2, fmt.Sprintln(v...)) } return } @@ -162,7 +162,7 @@ func (s *SimpleLogger) Debugf(format string, v ...interface{}) { // Info implement ILogger func (s *SimpleLogger) Info(v ...interface{}) { if s.level <= LOG_INFO { - s.INFO.Output(2, fmt.Sprint(v...)) + s.INFO.Output(2, fmt.Sprintln(v...)) } return } @@ -178,7 +178,7 @@ func (s *SimpleLogger) Infof(format string, v ...interface{}) { // Warn implement ILogger func (s *SimpleLogger) Warn(v ...interface{}) { if s.level <= LOG_WARNING { - s.WARN.Output(2, fmt.Sprint(v...)) + s.WARN.Output(2, fmt.Sprintln(v...)) } return } diff --git a/session.go b/session.go index 703aa873..8c692879 100644 --- a/session.go +++ b/session.go @@ -72,9 +72,9 @@ func (session *Session) Clone() *Session { // Init reset the session as the init status. func (session *Session) Init() { + session.statement.Reset() session.statement.dialect = session.engine.dialect session.statement.Engine = session.engine - session.statement.Reset() session.showSQL = session.engine.showSQL session.isAutoCommit = true session.isCommitedOrRollbacked = false diff --git a/session_get.go b/session_get.go index 376ac2c1..c42361a8 100644 --- a/session_get.go +++ b/session_get.go @@ -282,7 +282,7 @@ func (session *Session) cacheGet(bean interface{}, sqlStr string, args ...interf tableName := session.statement.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 ids, err := caches.GetCacheSql(cacher, tableName, newsql, args) if err != nil { @@ -318,19 +318,19 @@ func (session *Session) cacheGet(bean interface{}, sqlStr string, args ...interf } 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) if err != nil { return false, err } } else { - session.engine.logger.Debug("[cacheGet] cache hit sql:", newsql, ids) + session.engine.logger.Debug("[cache] cache hit:", newsql, ids) } if len(ids) > 0 { structValue := reflect.Indirect(reflect.ValueOf(bean)) 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() if err != nil { return false, err @@ -343,10 +343,10 @@ func (session *Session) cacheGet(bean interface{}, sqlStr string, args ...interf 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) } else { - session.engine.logger.Debug("[cacheGet] cache hit bean:", tableName, id, cacheBean) + session.engine.logger.Debug("[cache] cache hit:", tableName, id, cacheBean) has = true } structValue.Set(reflect.Indirect(reflect.ValueOf(cacheBean))) diff --git a/statement.go b/statement.go index 78e252b9..fd6b3962 100644 --- a/statement.go +++ b/statement.go @@ -587,10 +587,6 @@ func (statement *Statement) SetExpr(column string, expression interface{}) *Stat return statement } -func (statement *Statement) quoteColumnMap() []string { - return statement.dialect.Quoter().Strings(statement.columnMap) -} - // Distinct generates "DISTINCT col1, col2 " statement func (statement *Statement) Distinct(columns ...string) *Statement { statement.IsDistinct = true diff --git a/statement_test.go b/statement_test.go index f048e1e8..6e5564b0 100644 --- a/statement_test.go +++ b/statement_test.go @@ -234,8 +234,12 @@ func TestUpdateIgnoreOnlyFromDBFields(t *testing.T) { }) assert.NoError(t, err) - record := assertGetRecord() - record.OnlyFromDBField = "test" - testEngine.Update(record) + assertGetRecord() + + _, err = testEngine.ID(1).Update(&TestOnlyFromDBField{ + OnlyToDBField: "b", + OnlyFromDBField: "test", + }) + assert.NoError(t, err) assertGetRecord() }