bug fixed
This commit is contained in:
parent
29a72f9adb
commit
aa6feeb328
8
cache.go
8
cache.go
|
@ -133,7 +133,7 @@ func decodeIds(s string) []int64 {
|
||||||
return res
|
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))
|
bytes := m.Get(genSqlKey(sql, args))
|
||||||
if bytes == nil {
|
if bytes == nil {
|
||||||
return nil, errors.New("Not Exist")
|
return nil, errors.New("Not Exist")
|
||||||
|
@ -142,18 +142,18 @@ func getCacheSql(m Cacher, sql string, args ...interface{}) ([]int64, error) {
|
||||||
return objs, nil
|
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)
|
bytes := encodeIds(ids)
|
||||||
m.Put(genSqlKey(sql, args), bytes)
|
m.Put(genSqlKey(sql, args), bytes)
|
||||||
return nil
|
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))
|
m.Del(genSqlKey(sql, args))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func genSqlKey(sql string, args ...interface{}) string {
|
func genSqlKey(sql string, args interface{}) string {
|
||||||
return fmt.Sprintf("%v-%v", sql, args)
|
return fmt.Sprintf("%v-%v", sql, args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ type Engine struct {
|
||||||
Tables map[reflect.Type]*Table
|
Tables map[reflect.Type]*Table
|
||||||
mutex *sync.Mutex
|
mutex *sync.Mutex
|
||||||
ShowSQL bool
|
ShowSQL bool
|
||||||
|
ShowErr bool
|
||||||
|
ShowDebug bool
|
||||||
Pool IConnectPool
|
Pool IConnectPool
|
||||||
Filters []Filter
|
Filters []Filter
|
||||||
Logger io.Writer
|
Logger io.Writer
|
||||||
|
@ -132,7 +134,9 @@ func (engine *Engine) LogSQL(contents ...interface{}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (engine *Engine) LogError(contents ...interface{}) {
|
func (engine *Engine) LogError(contents ...interface{}) {
|
||||||
|
if engine.ShowErr {
|
||||||
io.WriteString(engine.Logger, fmt.Sprintln(contents...))
|
io.WriteString(engine.Logger, fmt.Sprintln(contents...))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (engine *Engine) Sql(querystring string, args ...interface{}) *Session {
|
func (engine *Engine) Sql(querystring string, args ...interface{}) *Session {
|
||||||
|
|
12
session.go
12
session.go
|
@ -470,9 +470,9 @@ func (session *Session) cacheFind(t reflect.Type, sql string, rowsSlicePtr inter
|
||||||
|
|
||||||
table := session.Statement.RefTable
|
table := session.Statement.RefTable
|
||||||
cacher := table.Cacher
|
cacher := table.Cacher
|
||||||
ids, err := getCacheSql(cacher, newsql)
|
ids, err := getCacheSql(cacher, newsql, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
//fmt.Println(err)
|
session.Engine.LogError(err)
|
||||||
resultsSlice, err := session.query(newsql, args...)
|
resultsSlice, err := session.query(newsql, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -1331,7 +1331,7 @@ func (session *Session) cacheUpdate(sql string, args ...interface{}) error {
|
||||||
}
|
}
|
||||||
table := session.Statement.RefTable
|
table := session.Statement.RefTable
|
||||||
cacher := table.Cacher
|
cacher := table.Cacher
|
||||||
ids, err := getCacheSql(cacher, newsql)
|
ids, err := getCacheSql(cacher, newsql, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resultsSlice, err := session.query(newsql, args[nStart:]...)
|
resultsSlice, err := session.query(newsql, args[nStart:]...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1354,7 +1354,7 @@ func (session *Session) cacheUpdate(sql string, args ...interface{}) error {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//fmt.Printf("-----Cached SQL: %v.\n", newsql)
|
//fmt.Printf("-----Cached SQL: %v.\n", newsql)
|
||||||
delCacheSql(cacher, newsql)
|
delCacheSql(cacher, newsql, args)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
|
@ -1495,7 +1495,7 @@ func (session *Session) cacheDelete(sql string, args ...interface{}) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
cacher := session.Statement.RefTable.Cacher
|
cacher := session.Statement.RefTable.Cacher
|
||||||
ids, err := getCacheSql(cacher, newsql)
|
ids, err := getCacheSql(cacher, newsql, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resultsSlice, err := session.query(newsql, args...)
|
resultsSlice, err := session.query(newsql, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1518,7 +1518,7 @@ func (session *Session) cacheDelete(sql string, args ...interface{}) error {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//fmt.Printf("-----Cached SQL: %v.\n", newsql)
|
//fmt.Printf("-----Cached SQL: %v.\n", newsql)
|
||||||
delCacheSql(cacher, newsql)
|
delCacheSql(cacher, newsql, args)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
|
|
Loading…
Reference in New Issue