update latest xorm version to vendor (#2353)
This commit is contained in:
parent
5c29b0a5fe
commit
2c6a0fdca8
44 changed files with 1748 additions and 1414 deletions
64
vendor/github.com/go-xorm/xorm/session_delete.go
generated
vendored
64
vendor/github.com/go-xorm/xorm/session_delete.go
generated
vendored
|
@ -13,22 +13,22 @@ import (
|
|||
)
|
||||
|
||||
func (session *Session) cacheDelete(sqlStr string, args ...interface{}) error {
|
||||
if session.Statement.RefTable == nil ||
|
||||
session.Tx != nil {
|
||||
if session.statement.RefTable == nil ||
|
||||
session.tx != nil {
|
||||
return ErrCacheFailed
|
||||
}
|
||||
|
||||
for _, filter := range session.Engine.dialect.Filters() {
|
||||
sqlStr = filter.Do(sqlStr, session.Engine.dialect, session.Statement.RefTable)
|
||||
for _, filter := range session.engine.dialect.Filters() {
|
||||
sqlStr = filter.Do(sqlStr, session.engine.dialect, session.statement.RefTable)
|
||||
}
|
||||
|
||||
newsql := session.Statement.convertIDSQL(sqlStr)
|
||||
newsql := session.statement.convertIDSQL(sqlStr)
|
||||
if newsql == "" {
|
||||
return ErrCacheFailed
|
||||
}
|
||||
|
||||
cacher := session.Engine.getCacher2(session.Statement.RefTable)
|
||||
tableName := session.Statement.TableName()
|
||||
cacher := session.engine.getCacher2(session.statement.RefTable)
|
||||
tableName := session.statement.TableName()
|
||||
ids, err := core.GetCacheSql(cacher, tableName, newsql, args)
|
||||
if err != nil {
|
||||
resultsSlice, err := session.query(newsql, args...)
|
||||
|
@ -40,7 +40,7 @@ func (session *Session) cacheDelete(sqlStr string, args ...interface{}) error {
|
|||
for _, data := range resultsSlice {
|
||||
var id int64
|
||||
var pk core.PK = make([]interface{}, 0)
|
||||
for _, col := range session.Statement.RefTable.PKColumns() {
|
||||
for _, col := range session.statement.RefTable.PKColumns() {
|
||||
if v, ok := data[col.Name]; !ok {
|
||||
return errors.New("no id")
|
||||
} else if col.SQLType.IsText() {
|
||||
|
@ -59,19 +59,19 @@ func (session *Session) cacheDelete(sqlStr string, args ...interface{}) error {
|
|||
}
|
||||
}
|
||||
} /*else {
|
||||
session.Engine.LogDebug("delete cache sql %v", newsql)
|
||||
session.engine.LogDebug("delete cache sql %v", newsql)
|
||||
cacher.DelIds(tableName, genSqlKey(newsql, args))
|
||||
}*/
|
||||
|
||||
for _, id := range ids {
|
||||
session.Engine.logger.Debug("[cacheDelete] delete cache obj", tableName, id)
|
||||
session.engine.logger.Debug("[cacheDelete] delete cache obj", tableName, id)
|
||||
sid, err := id.ToString()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cacher.DelBean(tableName, sid)
|
||||
}
|
||||
session.Engine.logger.Debug("[cacheDelete] clear cache sql", tableName)
|
||||
session.engine.logger.Debug("[cacheDelete] clear cache sql", tableName)
|
||||
cacher.ClearIds(tableName)
|
||||
return nil
|
||||
}
|
||||
|
@ -79,14 +79,14 @@ func (session *Session) cacheDelete(sqlStr string, args ...interface{}) error {
|
|||
// Delete records, bean's non-empty fields are conditions
|
||||
func (session *Session) Delete(bean interface{}) (int64, error) {
|
||||
defer session.resetStatement()
|
||||
if session.IsAutoClose {
|
||||
if session.isAutoClose {
|
||||
defer session.Close()
|
||||
}
|
||||
|
||||
if err := session.Statement.setRefValue(rValue(bean)); err != nil {
|
||||
if err := session.statement.setRefValue(rValue(bean)); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
var table = session.Statement.RefTable
|
||||
var table = session.statement.RefTable
|
||||
|
||||
// handle before delete processors
|
||||
for _, closure := range session.beforeClosures {
|
||||
|
@ -98,13 +98,15 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
processor.BeforeDelete()
|
||||
}
|
||||
|
||||
// --
|
||||
condSQL, condArgs, _ := session.Statement.genConds(bean)
|
||||
if len(condSQL) == 0 && session.Statement.LimitN == 0 {
|
||||
condSQL, condArgs, err := session.statement.genConds(bean)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if len(condSQL) == 0 && session.statement.LimitN == 0 {
|
||||
return 0, ErrNeedDeletedCond
|
||||
}
|
||||
|
||||
var tableName = session.Engine.Quote(session.Statement.TableName())
|
||||
var tableName = session.engine.Quote(session.statement.TableName())
|
||||
var deleteSQL string
|
||||
if len(condSQL) > 0 {
|
||||
deleteSQL = fmt.Sprintf("DELETE FROM %v WHERE %v", tableName, condSQL)
|
||||
|
@ -113,15 +115,15 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
}
|
||||
|
||||
var orderSQL string
|
||||
if len(session.Statement.OrderStr) > 0 {
|
||||
orderSQL += fmt.Sprintf(" ORDER BY %s", session.Statement.OrderStr)
|
||||
if len(session.statement.OrderStr) > 0 {
|
||||
orderSQL += fmt.Sprintf(" ORDER BY %s", session.statement.OrderStr)
|
||||
}
|
||||
if session.Statement.LimitN > 0 {
|
||||
orderSQL += fmt.Sprintf(" LIMIT %d", session.Statement.LimitN)
|
||||
if session.statement.LimitN > 0 {
|
||||
orderSQL += fmt.Sprintf(" LIMIT %d", session.statement.LimitN)
|
||||
}
|
||||
|
||||
if len(orderSQL) > 0 {
|
||||
switch session.Engine.dialect.DBType() {
|
||||
switch session.engine.dialect.DBType() {
|
||||
case core.POSTGRES:
|
||||
inSQL := fmt.Sprintf("ctid IN (SELECT ctid FROM %s%s)", tableName, orderSQL)
|
||||
if len(condSQL) > 0 {
|
||||
|
@ -146,7 +148,7 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
|
||||
var realSQL string
|
||||
argsForCache := make([]interface{}, 0, len(condArgs)*2)
|
||||
if session.Statement.unscoped || table.DeletedColumn() == nil { // tag "deleted" is disabled
|
||||
if session.statement.unscoped || table.DeletedColumn() == nil { // tag "deleted" is disabled
|
||||
realSQL = deleteSQL
|
||||
copy(argsForCache, condArgs)
|
||||
argsForCache = append(condArgs, argsForCache...)
|
||||
|
@ -157,12 +159,12 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
|
||||
deletedColumn := table.DeletedColumn()
|
||||
realSQL = fmt.Sprintf("UPDATE %v SET %v = ? WHERE %v",
|
||||
session.Engine.Quote(session.Statement.TableName()),
|
||||
session.Engine.Quote(deletedColumn.Name),
|
||||
session.engine.Quote(session.statement.TableName()),
|
||||
session.engine.Quote(deletedColumn.Name),
|
||||
condSQL)
|
||||
|
||||
if len(orderSQL) > 0 {
|
||||
switch session.Engine.dialect.DBType() {
|
||||
switch session.engine.dialect.DBType() {
|
||||
case core.POSTGRES:
|
||||
inSQL := fmt.Sprintf("ctid IN (SELECT ctid FROM %s%s)", tableName, orderSQL)
|
||||
if len(condSQL) > 0 {
|
||||
|
@ -185,12 +187,12 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
}
|
||||
}
|
||||
|
||||
// !oinume! Insert NowTime to the head of session.Statement.Params
|
||||
// !oinume! Insert NowTime to the head of session.statement.Params
|
||||
condArgs = append(condArgs, "")
|
||||
paramsLen := len(condArgs)
|
||||
copy(condArgs[1:paramsLen], condArgs[0:paramsLen-1])
|
||||
|
||||
val, t := session.Engine.NowTime2(deletedColumn.SQLType.Name)
|
||||
val, t := session.engine.NowTime2(deletedColumn.SQLType.Name)
|
||||
condArgs[0] = val
|
||||
|
||||
var colName = deletedColumn.Name
|
||||
|
@ -200,7 +202,7 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
})
|
||||
}
|
||||
|
||||
if cacher := session.Engine.getCacher2(session.Statement.RefTable); cacher != nil && session.Statement.UseCache {
|
||||
if cacher := session.engine.getCacher2(session.statement.RefTable); cacher != nil && session.statement.UseCache {
|
||||
session.cacheDelete(deleteSQL, argsForCache...)
|
||||
}
|
||||
|
||||
|
@ -210,7 +212,7 @@ func (session *Session) Delete(bean interface{}) (int64, error) {
|
|||
}
|
||||
|
||||
// handle after delete processors
|
||||
if session.IsAutoCommit {
|
||||
if session.isAutoCommit {
|
||||
for _, closure := range session.afterClosures {
|
||||
closure(bean)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue