diff --git a/cache.go b/cache.go index b6218c78..ea2abb62 100644 --- a/cache.go +++ b/cache.go @@ -133,7 +133,7 @@ func decodeIds(s string) []int64 { return res } -func getCacheSql(m Cacher, sql string, args ...interface{}) ([]int64, error) { +func getCacheSql(m Cacher, sql string, args interface{}) ([]int64, error) { bytes := m.Get(genSqlKey(sql, args)) if bytes == nil { return nil, errors.New("Not Exist") @@ -142,18 +142,18 @@ func getCacheSql(m Cacher, sql string, args ...interface{}) ([]int64, error) { return objs, nil } -func putCacheSql(m Cacher, ids []int64, sql string, args ...interface{}) error { +func putCacheSql(m Cacher, ids []int64, sql string, args interface{}) error { bytes := encodeIds(ids) m.Put(genSqlKey(sql, args), bytes) return nil } -func delCacheSql(m Cacher, sql string, args ...interface{}) error { +func delCacheSql(m Cacher, sql string, args interface{}) error { m.Del(genSqlKey(sql, args)) return nil } -func genSqlKey(sql string, args ...interface{}) string { +func genSqlKey(sql string, args interface{}) string { return fmt.Sprintf("%v-%v", sql, args) } diff --git a/engine.go b/engine.go index ab1d4ceb..ccbb8481 100644 --- a/engine.go +++ b/engine.go @@ -35,6 +35,8 @@ type Engine struct { Tables map[reflect.Type]*Table mutex *sync.Mutex ShowSQL bool + ShowErr bool + ShowDebug bool Pool IConnectPool Filters []Filter Logger io.Writer @@ -132,7 +134,9 @@ func (engine *Engine) LogSQL(contents ...interface{}) { } func (engine *Engine) LogError(contents ...interface{}) { - io.WriteString(engine.Logger, fmt.Sprintln(contents...)) + if engine.ShowErr { + io.WriteString(engine.Logger, fmt.Sprintln(contents...)) + } } func (engine *Engine) Sql(querystring string, args ...interface{}) *Session { diff --git a/session.go b/session.go index f640c2bd..35fe0bae 100644 --- a/session.go +++ b/session.go @@ -470,9 +470,9 @@ func (session *Session) cacheFind(t reflect.Type, sql string, rowsSlicePtr inter table := session.Statement.RefTable cacher := table.Cacher - ids, err := getCacheSql(cacher, newsql) + ids, err := getCacheSql(cacher, newsql, args) if err != nil { - //fmt.Println(err) + session.Engine.LogError(err) resultsSlice, err := session.query(newsql, args...) if err != nil { return err @@ -1331,7 +1331,7 @@ func (session *Session) cacheUpdate(sql string, args ...interface{}) error { } table := session.Statement.RefTable cacher := table.Cacher - ids, err := getCacheSql(cacher, newsql) + ids, err := getCacheSql(cacher, newsql, args) if err != nil { resultsSlice, err := session.query(newsql, args[nStart:]...) if err != nil { @@ -1354,7 +1354,7 @@ func (session *Session) cacheUpdate(sql string, args ...interface{}) error { } } else { //fmt.Printf("-----Cached SQL: %v.\n", newsql) - delCacheSql(cacher, newsql) + delCacheSql(cacher, newsql, args) } for _, id := range ids { @@ -1495,7 +1495,7 @@ func (session *Session) cacheDelete(sql string, args ...interface{}) error { } cacher := session.Statement.RefTable.Cacher - ids, err := getCacheSql(cacher, newsql) + ids, err := getCacheSql(cacher, newsql, args) if err != nil { resultsSlice, err := session.query(newsql, args...) if err != nil { @@ -1518,7 +1518,7 @@ func (session *Session) cacheDelete(sql string, args ...interface{}) error { } } else { //fmt.Printf("-----Cached SQL: %v.\n", newsql) - delCacheSql(cacher, newsql) + delCacheSql(cacher, newsql, args) } for _, id := range ids {