bug fixed

This commit is contained in:
Lunny Xiao 2013-09-23 10:20:45 +08:00
parent 29a72f9adb
commit aa6feeb328
3 changed files with 15 additions and 11 deletions

View File

@ -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)
}

View File

@ -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 {

View File

@ -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 {