some golints fixed

This commit is contained in:
Lunny Xiao 2016-12-11 12:45:37 +08:00
parent b19177f4dc
commit c60f2467a9
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
10 changed files with 144 additions and 60 deletions

View File

@ -168,8 +168,10 @@ func (engine *Engine) quote(sql string) string {
} }
// SqlType will be depracated, please use SQLType instead // SqlType will be depracated, please use SQLType instead
//
// Deprecated: use SQLType instead
func (engine *Engine) SqlType(c *core.Column) string { func (engine *Engine) SqlType(c *core.Column) string {
return engine.dialect.SqlType(c) return engine.SQLType(c)
} }
// SQLType A simple wrapper to dialect's core.SqlType method // SQLType A simple wrapper to dialect's core.SqlType method
@ -295,7 +297,10 @@ func (engine *Engine) logSQLExecutionTime(sqlStr string, args []interface{}, exe
return executionBlock() return executionBlock()
} }
// Sql will be depracated, please use SQL instead // Sql provides raw sql input parameter. When you have a complex SQL statement
// and cannot use Where, Id, In and etc. Methods to describe, you can use SQL.
//
// Deprecated: use SQL instead.
func (engine *Engine) Sql(querystring string, args ...interface{}) *Session { func (engine *Engine) Sql(querystring string, args ...interface{}) *Session {
return engine.SQL(querystring, args...) return engine.SQL(querystring, args...)
} }
@ -434,7 +439,7 @@ func (engine *Engine) dumpAll(w io.Writer, tp ...core.DbType) error {
} else { } else {
dialect = core.QueryDialect(tp[0]) dialect = core.QueryDialect(tp[0])
if dialect == nil { if dialect == nil {
return errors.New("Unsupported database type.") return errors.New("Unsupported database type")
} }
dialect.Init(nil, engine.dialect.URI(), "", "") dialect.Init(nil, engine.dialect.URI(), "", "")
} }
@ -535,7 +540,7 @@ func (engine *Engine) dumpTables(tables []*core.Table, w io.Writer, tp ...core.D
} else { } else {
dialect = core.QueryDialect(tp[0]) dialect = core.QueryDialect(tp[0])
if dialect == nil { if dialect == nil {
return errors.New("Unsupported database type.") return errors.New("Unsupported database type")
} }
dialect.Init(nil, engine.dialect.URI(), "", "") dialect.Init(nil, engine.dialect.URI(), "", "")
} }
@ -1208,12 +1213,26 @@ func (engine *Engine) IsTableExist(beanOrTableName interface{}) (bool, error) {
} }
// IdOf get id from one struct // IdOf get id from one struct
//
// Deprecated: use IDOf instead.
func (engine *Engine) IdOf(bean interface{}) core.PK { func (engine *Engine) IdOf(bean interface{}) core.PK {
return engine.IDOf(bean)
}
// IDOf get id from one struct
func (engine *Engine) IDOf(bean interface{}) core.PK {
return engine.IdOfV(reflect.ValueOf(bean)) return engine.IdOfV(reflect.ValueOf(bean))
} }
// IdOfV get id from one value of struct // IdOfV get id from one value of struct
//
// Deprecated: use IDOfV instead.
func (engine *Engine) IdOfV(rv reflect.Value) core.PK { func (engine *Engine) IdOfV(rv reflect.Value) core.PK {
return engine.IDOfV(rv)
}
// IDOfV get id from one value of struct
func (engine *Engine) IDOfV(rv reflect.Value) core.PK {
v := reflect.Indirect(rv) v := reflect.Indirect(rv)
table := engine.autoMapType(v) table := engine.autoMapType(v)
pk := make([]interface{}, len(table.PrimaryKeys)) pk := make([]interface{}, len(table.PrimaryKeys))

View File

@ -9,11 +9,18 @@ import (
) )
var ( var (
ErrParamsType error = errors.New("Params type error") // ErrParamsType params error
ErrTableNotFound error = errors.New("Not found table") ErrParamsType = errors.New("Params type error")
ErrUnSupportedType error = errors.New("Unsupported type error") // ErrTableNotFound table not found error
ErrNotExist error = errors.New("Not exist error") ErrTableNotFound = errors.New("Not found table")
ErrCacheFailed error = errors.New("Cache failed") // ErrUnSupportedType unsupported error
ErrNeedDeletedCond error = errors.New("Delete need at least one condition") ErrUnSupportedType = errors.New("Unsupported type error")
ErrNotImplemented error = errors.New("Not implemented.") // ErrNotExist record is not exist error
ErrNotExist = errors.New("Not exist error")
// ErrCacheFailed cache failed error
ErrCacheFailed = errors.New("Cache failed")
// ErrNeedDeletedCond delete needs less one condition error
ErrNeedDeletedCond = errors.New("Delete need at least one condition")
// ErrNotImplemented not implemented
ErrNotImplemented = errors.New("Not implemented")
) )

View File

@ -20,21 +20,45 @@ const (
var _ core.ILogger = DiscardLogger{} var _ core.ILogger = DiscardLogger{}
// DiscardLogger don't log implementation for core.ILogger
type DiscardLogger struct{} type DiscardLogger struct{}
func (DiscardLogger) Debug(v ...interface{}) {} // Debug empty implementation
func (DiscardLogger) Debug(v ...interface{}) {}
// Debugf empty implementation
func (DiscardLogger) Debugf(format string, v ...interface{}) {} func (DiscardLogger) Debugf(format string, v ...interface{}) {}
func (DiscardLogger) Error(v ...interface{}) {}
// Error empty implementation
func (DiscardLogger) Error(v ...interface{}) {}
// Errorf empty implementation
func (DiscardLogger) Errorf(format string, v ...interface{}) {} func (DiscardLogger) Errorf(format string, v ...interface{}) {}
func (DiscardLogger) Info(v ...interface{}) {}
func (DiscardLogger) Infof(format string, v ...interface{}) {} // Info empty implementation
func (DiscardLogger) Warn(v ...interface{}) {} func (DiscardLogger) Info(v ...interface{}) {}
func (DiscardLogger) Warnf(format string, v ...interface{}) {}
// Infof empty implementation
func (DiscardLogger) Infof(format string, v ...interface{}) {}
// Warn empty implementation
func (DiscardLogger) Warn(v ...interface{}) {}
// Warnf empty implementation
func (DiscardLogger) Warnf(format string, v ...interface{}) {}
// Level empty implementation
func (DiscardLogger) Level() core.LogLevel { func (DiscardLogger) Level() core.LogLevel {
return core.LOG_UNKNOWN return core.LOG_UNKNOWN
} }
// SetLevel empty implementation
func (DiscardLogger) SetLevel(l core.LogLevel) {} func (DiscardLogger) SetLevel(l core.LogLevel) {}
func (DiscardLogger) ShowSQL(show ...bool) {}
// ShowSQL empty implementation
func (DiscardLogger) ShowSQL(show ...bool) {}
// IsShowSQL empty implementation
func (DiscardLogger) IsShowSQL() bool { func (DiscardLogger) IsShowSQL() bool {
return false return false
} }

View File

@ -13,6 +13,7 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
// LRUCacher implments cache object facilities
type LRUCacher struct { type LRUCacher struct {
idList *list.List idList *list.List
sqlList *list.List sqlList *list.List
@ -26,10 +27,12 @@ type LRUCacher struct {
GcInterval time.Duration GcInterval time.Duration
} }
// NewLRUCacher creates a cacher
func NewLRUCacher(store core.CacheStore, maxElementSize int) *LRUCacher { func NewLRUCacher(store core.CacheStore, maxElementSize int) *LRUCacher {
return NewLRUCacher2(store, 3600*time.Second, maxElementSize) return NewLRUCacher2(store, 3600*time.Second, maxElementSize)
} }
// NewLRUCacher2 creates a cache include different params
func NewLRUCacher2(store core.CacheStore, expired time.Duration, maxElementSize int) *LRUCacher { func NewLRUCacher2(store core.CacheStore, expired time.Duration, maxElementSize int) *LRUCacher {
cacher := &LRUCacher{store: store, idList: list.New(), cacher := &LRUCacher{store: store, idList: list.New(),
sqlList: list.New(), Expired: expired, sqlList: list.New(), Expired: expired,
@ -41,10 +44,6 @@ func NewLRUCacher2(store core.CacheStore, expired time.Duration, maxElementSize
return cacher return cacher
} }
//func NewLRUCacher3(store CacheStore, expired time.Duration, maxSize int) *LRUCacher {
// return newLRUCacher(store, expired, maxSize, 0)
//}
// RunGC run once every m.GcInterval // RunGC run once every m.GcInterval
func (m *LRUCacher) RunGC() { func (m *LRUCacher) RunGC() {
time.AfterFunc(m.GcInterval, func() { time.AfterFunc(m.GcInterval, func() {
@ -101,7 +100,7 @@ func (m *LRUCacher) GetIds(tableName, sql string) interface{} {
} }
if v, err := m.store.Get(sql); err == nil { if v, err := m.store.Get(sql); err == nil {
if el, ok := m.sqlIndex[tableName][sql]; !ok { if el, ok := m.sqlIndex[tableName][sql]; !ok {
el = m.sqlList.PushBack(newSqlNode(tableName, sql)) el = m.sqlList.PushBack(newSQLNode(tableName, sql))
m.sqlIndex[tableName][sql] = el m.sqlIndex[tableName][sql] = el
} else { } else {
lastTime := el.Value.(*sqlNode).lastVisit lastTime := el.Value.(*sqlNode).lastVisit
@ -114,10 +113,10 @@ func (m *LRUCacher) GetIds(tableName, sql string) interface{} {
el.Value.(*sqlNode).lastVisit = time.Now() el.Value.(*sqlNode).lastVisit = time.Now()
} }
return v return v
} else {
m.delIds(tableName, sql)
} }
m.delIds(tableName, sql)
return nil return nil
} }
@ -128,7 +127,7 @@ func (m *LRUCacher) GetBean(tableName string, id string) interface{} {
if _, ok := m.idIndex[tableName]; !ok { if _, ok := m.idIndex[tableName]; !ok {
m.idIndex[tableName] = make(map[string]*list.Element) m.idIndex[tableName] = make(map[string]*list.Element)
} }
tid := genId(tableName, id) tid := genID(tableName, id)
if v, err := m.store.Get(tid); err == nil { if v, err := m.store.Get(tid); err == nil {
if el, ok := m.idIndex[tableName][id]; ok { if el, ok := m.idIndex[tableName][id]; ok {
lastTime := el.Value.(*idNode).lastVisit lastTime := el.Value.(*idNode).lastVisit
@ -141,19 +140,19 @@ func (m *LRUCacher) GetBean(tableName string, id string) interface{} {
m.idList.MoveToBack(el) m.idList.MoveToBack(el)
el.Value.(*idNode).lastVisit = time.Now() el.Value.(*idNode).lastVisit = time.Now()
} else { } else {
el = m.idList.PushBack(newIdNode(tableName, id)) el = m.idList.PushBack(newIDNode(tableName, id))
m.idIndex[tableName][id] = el m.idIndex[tableName][id] = el
} }
return v return v
} else {
// store bean is not exist, then remove memory's index
m.delBean(tableName, id)
//m.clearIds(tableName)
return nil
} }
// store bean is not exist, then remove memory's index
m.delBean(tableName, id)
//m.clearIds(tableName)
return nil
} }
// Clear all sql-ids mapping on table tableName from cache // clearIds clears all sql-ids mapping on table tableName from cache
func (m *LRUCacher) clearIds(tableName string) { func (m *LRUCacher) clearIds(tableName string) {
if tis, ok := m.sqlIndex[tableName]; ok { if tis, ok := m.sqlIndex[tableName]; ok {
for sql, v := range tis { for sql, v := range tis {
@ -164,6 +163,7 @@ func (m *LRUCacher) clearIds(tableName string) {
m.sqlIndex[tableName] = make(map[string]*list.Element) m.sqlIndex[tableName] = make(map[string]*list.Element)
} }
// ClearIds clears all sql-ids mapping on table tableName from cache
func (m *LRUCacher) ClearIds(tableName string) { func (m *LRUCacher) ClearIds(tableName string) {
m.mutex.Lock() m.mutex.Lock()
defer m.mutex.Unlock() defer m.mutex.Unlock()
@ -174,19 +174,21 @@ func (m *LRUCacher) clearBeans(tableName string) {
if tis, ok := m.idIndex[tableName]; ok { if tis, ok := m.idIndex[tableName]; ok {
for id, v := range tis { for id, v := range tis {
m.idList.Remove(v) m.idList.Remove(v)
tid := genId(tableName, id) tid := genID(tableName, id)
m.store.Del(tid) m.store.Del(tid)
} }
} }
m.idIndex[tableName] = make(map[string]*list.Element) m.idIndex[tableName] = make(map[string]*list.Element)
} }
// ClearBeans clears all beans in some table
func (m *LRUCacher) ClearBeans(tableName string) { func (m *LRUCacher) ClearBeans(tableName string) {
m.mutex.Lock() m.mutex.Lock()
defer m.mutex.Unlock() defer m.mutex.Unlock()
m.clearBeans(tableName) m.clearBeans(tableName)
} }
// PutIds pus ids into table
func (m *LRUCacher) PutIds(tableName, sql string, ids interface{}) { func (m *LRUCacher) PutIds(tableName, sql string, ids interface{}) {
m.mutex.Lock() m.mutex.Lock()
defer m.mutex.Unlock() defer m.mutex.Unlock()
@ -194,7 +196,7 @@ func (m *LRUCacher) PutIds(tableName, sql string, ids interface{}) {
m.sqlIndex[tableName] = make(map[string]*list.Element) m.sqlIndex[tableName] = make(map[string]*list.Element)
} }
if el, ok := m.sqlIndex[tableName][sql]; !ok { if el, ok := m.sqlIndex[tableName][sql]; !ok {
el = m.sqlList.PushBack(newSqlNode(tableName, sql)) el = m.sqlList.PushBack(newSQLNode(tableName, sql))
m.sqlIndex[tableName][sql] = el m.sqlIndex[tableName][sql] = el
} else { } else {
el.Value.(*sqlNode).lastVisit = time.Now() el.Value.(*sqlNode).lastVisit = time.Now()
@ -207,6 +209,7 @@ func (m *LRUCacher) PutIds(tableName, sql string, ids interface{}) {
} }
} }
// PutBean puts beans into table
func (m *LRUCacher) PutBean(tableName string, id string, obj interface{}) { func (m *LRUCacher) PutBean(tableName string, id string, obj interface{}) {
m.mutex.Lock() m.mutex.Lock()
defer m.mutex.Unlock() defer m.mutex.Unlock()
@ -214,13 +217,13 @@ func (m *LRUCacher) PutBean(tableName string, id string, obj interface{}) {
var ok bool var ok bool
if el, ok = m.idIndex[tableName][id]; !ok { if el, ok = m.idIndex[tableName][id]; !ok {
el = m.idList.PushBack(newIdNode(tableName, id)) el = m.idList.PushBack(newIDNode(tableName, id))
m.idIndex[tableName][id] = el m.idIndex[tableName][id] = el
} else { } else {
el.Value.(*idNode).lastVisit = time.Now() el.Value.(*idNode).lastVisit = time.Now()
} }
m.store.Put(genId(tableName, id), obj) m.store.Put(genID(tableName, id), obj)
if m.idList.Len() > m.MaxElementSize { if m.idList.Len() > m.MaxElementSize {
e := m.idList.Front() e := m.idList.Front()
node := e.Value.(*idNode) node := e.Value.(*idNode)
@ -238,6 +241,7 @@ func (m *LRUCacher) delIds(tableName, sql string) {
m.store.Del(sql) m.store.Del(sql)
} }
// DelIds deletes ids
func (m *LRUCacher) DelIds(tableName, sql string) { func (m *LRUCacher) DelIds(tableName, sql string) {
m.mutex.Lock() m.mutex.Lock()
defer m.mutex.Unlock() defer m.mutex.Unlock()
@ -245,7 +249,7 @@ func (m *LRUCacher) DelIds(tableName, sql string) {
} }
func (m *LRUCacher) delBean(tableName string, id string) { func (m *LRUCacher) delBean(tableName string, id string) {
tid := genId(tableName, id) tid := genID(tableName, id)
if el, ok := m.idIndex[tableName][id]; ok { if el, ok := m.idIndex[tableName][id]; ok {
delete(m.idIndex[tableName], id) delete(m.idIndex[tableName], id)
m.idList.Remove(el) m.idList.Remove(el)
@ -254,6 +258,7 @@ func (m *LRUCacher) delBean(tableName string, id string) {
m.store.Del(tid) m.store.Del(tid)
} }
// DelBean deletes beans in some table
func (m *LRUCacher) DelBean(tableName string, id string) { func (m *LRUCacher) DelBean(tableName string, id string) {
m.mutex.Lock() m.mutex.Lock()
defer m.mutex.Unlock() defer m.mutex.Unlock()
@ -272,18 +277,18 @@ type sqlNode struct {
lastVisit time.Time lastVisit time.Time
} }
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)
} }
func genId(prefix string, id string) string { func genID(prefix string, id string) string {
return fmt.Sprintf("%v-%v", prefix, id) return fmt.Sprintf("%v-%v", prefix, id)
} }
func newIdNode(tbName string, id string) *idNode { func newIDNode(tbName string, id string) *idNode {
return &idNode{tbName, id, time.Now()} return &idNode{tbName, id, time.Now()}
} }
func newSqlNode(tbName, sql string) *sqlNode { func newSQLNode(tbName, sql string) *sqlNode {
return &sqlNode{tbName, sql, time.Now()} return &sqlNode{tbName, sql, time.Now()}
} }

View File

@ -18,10 +18,12 @@ type MemoryStore struct {
mutex sync.RWMutex mutex sync.RWMutex
} }
// NewMemoryStore creates a new store in memory
func NewMemoryStore() *MemoryStore { func NewMemoryStore() *MemoryStore {
return &MemoryStore{store: make(map[interface{}]interface{})} return &MemoryStore{store: make(map[interface{}]interface{})}
} }
// Put puts object into store
func (s *MemoryStore) Put(key string, value interface{}) error { func (s *MemoryStore) Put(key string, value interface{}) error {
s.mutex.Lock() s.mutex.Lock()
defer s.mutex.Unlock() defer s.mutex.Unlock()
@ -29,6 +31,7 @@ func (s *MemoryStore) Put(key string, value interface{}) error {
return nil return nil
} }
// Get gets object from store
func (s *MemoryStore) Get(key string) (interface{}, error) { func (s *MemoryStore) Get(key string) (interface{}, error) {
s.mutex.RLock() s.mutex.RLock()
defer s.mutex.RUnlock() defer s.mutex.RUnlock()
@ -39,6 +42,7 @@ func (s *MemoryStore) Get(key string) (interface{}, error) {
return nil, ErrNotExist return nil, ErrNotExist
} }
// Del deletes object
func (s *MemoryStore) Del(key string) error { func (s *MemoryStore) Del(key string) error {
s.mutex.Lock() s.mutex.Lock()
defer s.mutex.Unlock() defer s.mutex.Unlock()

View File

@ -19,10 +19,12 @@ type BeforeDeleteProcessor interface {
BeforeDelete() BeforeDelete()
} }
// BeforeSetProcessor executed before data set to the struct fields
type BeforeSetProcessor interface { type BeforeSetProcessor interface {
BeforeSet(string, Cell) BeforeSet(string, Cell)
} }
// AfterSetProcessor executed after data set to the struct fields
type AfterSetProcessor interface { type AfterSetProcessor interface {
AfterSet(string, Cell) AfterSet(string, Cell)
} }

View File

@ -113,7 +113,10 @@ func (session *Session) Prepare() *Session {
return session return session
} }
// Sql !DEPRECIATED! will be deprecated, please use SQL instead. // Sql provides raw sql input parameter. When you have a complex SQL statement
// and cannot use Where, Id, In and etc. Methods to describe, you can use SQL.
//
// Deprecated: use SQL instead.
func (session *Session) Sql(query string, args ...interface{}) *Session { func (session *Session) Sql(query string, args ...interface{}) *Session {
return session.SQL(query, args...) return session.SQL(query, args...)
} }
@ -143,15 +146,16 @@ func (session *Session) Or(query interface{}, args ...interface{}) *Session {
return session return session
} }
// Id will be deprecated, please use ID instead // Id provides converting id as a query condition
//
// Deprecated: use ID instead
func (session *Session) Id(id interface{}) *Session { func (session *Session) Id(id interface{}) *Session {
session.Statement.Id(id) return session.ID(id)
return session
} }
// ID provides converting id as a query condition // ID provides converting id as a query condition
func (session *Session) ID(id interface{}) *Session { func (session *Session) ID(id interface{}) *Session {
session.Statement.Id(id) session.Statement.ID(id)
return session return session
} }
@ -3612,7 +3616,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
colNames = append(colNames, session.Engine.Quote(v.colName)+" = "+v.expr) colNames = append(colNames, session.Engine.Quote(v.colName)+" = "+v.expr)
} }
session.Statement.processIdParam() session.Statement.processIDParam()
var autoCond builder.Cond var autoCond builder.Cond
if !session.Statement.noAutoCondition && len(condiBean) > 0 { if !session.Statement.noAutoCondition && len(condiBean) > 0 {

View File

@ -386,16 +386,16 @@ func (db *sqlite3) GetIndexes(tableName string) (map[string]*core.Index, error)
indexes := make(map[string]*core.Index, 0) indexes := make(map[string]*core.Index, 0)
for rows.Next() { for rows.Next() {
var tmpSql sql.NullString var tmpSQL sql.NullString
err = rows.Scan(&tmpSql) err = rows.Scan(&tmpSQL)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if !tmpSql.Valid { if !tmpSQL.Valid {
continue continue
} }
sql := tmpSql.String sql := tmpSQL.String
index := new(core.Index) index := new(core.Index)
nNStart := strings.Index(sql, "INDEX") nNStart := strings.Index(sql, "INDEX")

View File

@ -707,7 +707,14 @@ func (statement *Statement) TableName() string {
} }
// Id generate "where id = ? " statment or for composite key "where key1 = ? and key2 = ?" // Id generate "where id = ? " statment or for composite key "where key1 = ? and key2 = ?"
//
// Deprecated: use ID instead
func (statement *Statement) Id(id interface{}) *Statement { func (statement *Statement) Id(id interface{}) *Statement {
return statement.ID(id)
}
// ID generate "where id = ? " statment or for composite key "where key1 = ? and key2 = ?"
func (statement *Statement) ID(id interface{}) *Statement {
idValue := reflect.ValueOf(id) idValue := reflect.ValueOf(id)
idType := reflect.TypeOf(idValue.Interface()) idType := reflect.TypeOf(idValue.Interface())
@ -1106,7 +1113,7 @@ func (statement *Statement) genConds(bean interface{}) (string, []interface{}, e
statement.cond = statement.cond.And(autoCond) statement.cond = statement.cond.And(autoCond)
} }
statement.processIdParam() statement.processIDParam()
return builder.ToSQL(statement.cond) return builder.ToSQL(statement.cond)
} }
@ -1148,15 +1155,15 @@ func (statement *Statement) genCountSQL(bean interface{}) (string, []interface{}
condSQL, condArgs, _ := statement.genConds(bean) condSQL, condArgs, _ := statement.genConds(bean)
var selectSql = statement.selectStr var selectSQL = statement.selectStr
if len(selectSql) <= 0 { if len(selectSQL) <= 0 {
if statement.IsDistinct { if statement.IsDistinct {
selectSql = fmt.Sprintf("count(DISTINCT %s)", statement.ColumnStr) selectSQL = fmt.Sprintf("count(DISTINCT %s)", statement.ColumnStr)
} else { } else {
selectSql = "count(*)" selectSQL = "count(*)"
} }
} }
return statement.genSelectSQL(selectSql, condSQL), append(statement.joinArgs, condArgs...) return statement.genSelectSQL(selectSQL, condSQL), append(statement.joinArgs, condArgs...)
} }
func (statement *Statement) genSumSQL(bean interface{}, columns ...string) (string, []interface{}) { func (statement *Statement) genSumSQL(bean interface{}, columns ...string) (string, []interface{}) {
@ -1183,7 +1190,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
var top string var top string
var mssqlCondi string var mssqlCondi string
statement.processIdParam() statement.processIDParam()
var buf bytes.Buffer var buf bytes.Buffer
if len(condSQL) > 0 { if len(condSQL) > 0 {
@ -1280,7 +1287,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
return return
} }
func (statement *Statement) processIdParam() { func (statement *Statement) processIDParam() {
if statement.IdParam == nil { if statement.IdParam == nil {
return return
} }

View File

@ -21,42 +21,52 @@ type SyslogLogger struct {
showSQL bool showSQL bool
} }
// NewSyslogLogger implements core.ILogger
func NewSyslogLogger(w *syslog.Writer) *SyslogLogger { func NewSyslogLogger(w *syslog.Writer) *SyslogLogger {
return &SyslogLogger{w: w} return &SyslogLogger{w: w}
} }
// Debug log content as Debug
func (s *SyslogLogger) Debug(v ...interface{}) { func (s *SyslogLogger) Debug(v ...interface{}) {
s.w.Debug(fmt.Sprint(v...)) s.w.Debug(fmt.Sprint(v...))
} }
// Debugf log content as Debug and format
func (s *SyslogLogger) Debugf(format string, v ...interface{}) { func (s *SyslogLogger) Debugf(format string, v ...interface{}) {
s.w.Debug(fmt.Sprintf(format, v...)) s.w.Debug(fmt.Sprintf(format, v...))
} }
// Error log content as Error
func (s *SyslogLogger) Error(v ...interface{}) { func (s *SyslogLogger) Error(v ...interface{}) {
s.w.Err(fmt.Sprint(v...)) s.w.Err(fmt.Sprint(v...))
} }
// Errorf log content as Errorf and format
func (s *SyslogLogger) Errorf(format string, v ...interface{}) { func (s *SyslogLogger) Errorf(format string, v ...interface{}) {
s.w.Err(fmt.Sprintf(format, v...)) s.w.Err(fmt.Sprintf(format, v...))
} }
// Info log content as Info
func (s *SyslogLogger) Info(v ...interface{}) { func (s *SyslogLogger) Info(v ...interface{}) {
s.w.Info(fmt.Sprint(v...)) s.w.Info(fmt.Sprint(v...))
} }
// Infof log content as Infof and format
func (s *SyslogLogger) Infof(format string, v ...interface{}) { func (s *SyslogLogger) Infof(format string, v ...interface{}) {
s.w.Info(fmt.Sprintf(format, v...)) s.w.Info(fmt.Sprintf(format, v...))
} }
// Warn log content as Warn
func (s *SyslogLogger) Warn(v ...interface{}) { func (s *SyslogLogger) Warn(v ...interface{}) {
s.w.Warning(fmt.Sprint(v...)) s.w.Warning(fmt.Sprint(v...))
} }
// Warnf log content as Warnf and format
func (s *SyslogLogger) Warnf(format string, v ...interface{}) { func (s *SyslogLogger) Warnf(format string, v ...interface{}) {
s.w.Warning(fmt.Sprintf(format, v...)) s.w.Warning(fmt.Sprintf(format, v...))
} }
// Level shows log level
func (s *SyslogLogger) Level() core.LogLevel { func (s *SyslogLogger) Level() core.LogLevel {
return core.LOG_UNKNOWN return core.LOG_UNKNOWN
} }
@ -64,6 +74,7 @@ func (s *SyslogLogger) Level() core.LogLevel {
// SetLevel always return error, as current log/syslog package doesn't allow to set priority level after syslog.Writer created // SetLevel always return error, as current log/syslog package doesn't allow to set priority level after syslog.Writer created
func (s *SyslogLogger) SetLevel(l core.LogLevel) {} func (s *SyslogLogger) SetLevel(l core.LogLevel) {}
// ShowSQL set if logging SQL
func (s *SyslogLogger) ShowSQL(show ...bool) { func (s *SyslogLogger) ShowSQL(show ...bool) {
if len(show) == 0 { if len(show) == 0 {
s.showSQL = true s.showSQL = true
@ -72,6 +83,7 @@ func (s *SyslogLogger) ShowSQL(show ...bool) {
s.showSQL = show[0] s.showSQL = show[0]
} }
// IsShowSQL if logging SQL
func (s *SyslogLogger) IsShowSQL() bool { func (s *SyslogLogger) IsShowSQL() bool {
return s.showSQL return s.showSQL
} }