mirror of
https://github.com/grafana/grafana.git
synced 2025-08-06 04:19:26 +08:00
@ -17,7 +17,7 @@ import (
|
||||
)
|
||||
|
||||
// ErrNoElementsOnSlice represents an error there is no element when insert
|
||||
var ErrNoElementsOnSlice = errors.New("No element on slice when insert")
|
||||
var ErrNoElementsOnSlice = errors.New("no element on slice when insert")
|
||||
|
||||
// Insert insert one or more beans
|
||||
func (session *Session) Insert(beans ...interface{}) (int64, error) {
|
||||
@ -35,32 +35,30 @@ func (session *Session) Insert(beans ...interface{}) (int64, error) {
|
||||
}()
|
||||
|
||||
for _, bean := range beans {
|
||||
switch bean.(type) {
|
||||
switch bean := bean.(type) {
|
||||
case map[string]interface{}:
|
||||
cnt, err := session.insertMapInterface(bean.(map[string]interface{}))
|
||||
cnt, err := session.insertMapInterface(bean)
|
||||
if err != nil {
|
||||
return affected, err
|
||||
}
|
||||
affected += cnt
|
||||
case []map[string]interface{}:
|
||||
s := bean.([]map[string]interface{})
|
||||
for i := 0; i < len(s); i++ {
|
||||
cnt, err := session.insertMapInterface(s[i])
|
||||
for i := 0; i < len(bean); i++ {
|
||||
cnt, err := session.insertMapInterface(bean[i])
|
||||
if err != nil {
|
||||
return affected, err
|
||||
}
|
||||
affected += cnt
|
||||
}
|
||||
case map[string]string:
|
||||
cnt, err := session.insertMapString(bean.(map[string]string))
|
||||
cnt, err := session.insertMapString(bean)
|
||||
if err != nil {
|
||||
return affected, err
|
||||
}
|
||||
affected += cnt
|
||||
case []map[string]string:
|
||||
s := bean.([]map[string]string)
|
||||
for i := 0; i < len(s); i++ {
|
||||
cnt, err := session.insertMapString(s[i])
|
||||
for i := 0; i < len(bean); i++ {
|
||||
cnt, err := session.insertMapString(bean[i])
|
||||
if err != nil {
|
||||
return affected, err
|
||||
}
|
||||
@ -144,7 +142,6 @@ func (session *Session) innerInsertMulti(rowsSlicePtr interface{}) (int64, error
|
||||
if processor, ok := interface{}(elemValue).(BeforeInsertProcessor); ok {
|
||||
processor.BeforeInsert()
|
||||
}
|
||||
// --
|
||||
|
||||
if i == 0 {
|
||||
for _, col := range table.Columns() {
|
||||
@ -270,8 +267,6 @@ func (session *Session) innerInsertMulti(rowsSlicePtr interface{}) (int64, error
|
||||
return 0, err
|
||||
}
|
||||
|
||||
session.cacheInsert(tableName)
|
||||
|
||||
lenAfterClosures := len(session.afterClosures)
|
||||
for i := 0; i < size; i++ {
|
||||
elemValue := reflect.Indirect(sliceValue.Index(i)).Addr().Interface()
|
||||
@ -477,8 +472,6 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) {
|
||||
|
||||
defer handleAfterInsertProcessorFunc(bean)
|
||||
|
||||
session.cacheInsert(tableName)
|
||||
|
||||
if table.Version != "" && session.statement.checkVersion {
|
||||
verValue, err := table.VersionColumn().ValueOf(bean)
|
||||
if err != nil {
|
||||
@ -518,8 +511,6 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) {
|
||||
}
|
||||
defer handleAfterInsertProcessorFunc(bean)
|
||||
|
||||
session.cacheInsert(tableName)
|
||||
|
||||
if table.Version != "" && session.statement.checkVersion {
|
||||
verValue, err := table.VersionColumn().ValueOf(bean)
|
||||
if err != nil {
|
||||
@ -559,8 +550,6 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) {
|
||||
|
||||
defer handleAfterInsertProcessorFunc(bean)
|
||||
|
||||
session.cacheInsert(tableName)
|
||||
|
||||
if table.Version != "" && session.statement.checkVersion {
|
||||
verValue, err := table.VersionColumn().ValueOf(bean)
|
||||
if err != nil {
|
||||
@ -606,19 +595,6 @@ func (session *Session) InsertOne(bean interface{}) (int64, error) {
|
||||
return session.innerInsert(bean)
|
||||
}
|
||||
|
||||
func (session *Session) cacheInsert(table string) error {
|
||||
if !session.statement.UseCache {
|
||||
return nil
|
||||
}
|
||||
cacher := session.engine.getCacher(table)
|
||||
if cacher == nil {
|
||||
return nil
|
||||
}
|
||||
session.engine.logger.Debug("[cache] clear sql:", table)
|
||||
cacher.ClearIds(table)
|
||||
return nil
|
||||
}
|
||||
|
||||
// genInsertColumns generates insert needed columns
|
||||
func (session *Session) genInsertColumns(bean interface{}) ([]string, []interface{}, error) {
|
||||
table := session.statement.RefTable
|
||||
@ -839,10 +815,6 @@ func (session *Session) insertMap(columns []string, args []interface{}) (int64,
|
||||
sql := w.String()
|
||||
args = w.Args()
|
||||
|
||||
if err := session.cacheInsert(tableName); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
res, err := session.exec(sql, args...)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
|
Reference in New Issue
Block a user