Some slight improvments
This commit is contained in:
parent
f7e9fb74ac
commit
e9dbd365a3
|
@ -11,6 +11,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
|
"xorm.io/xorm/log"
|
||||||
"xorm.io/xorm/schemas"
|
"xorm.io/xorm/schemas"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -142,8 +143,13 @@ func TestInsert(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(Userinfo))
|
assertSync(t, new(Userinfo))
|
||||||
|
|
||||||
user := Userinfo{0, "xiaolunwen", "dev", "lunny", time.Now(),
|
user := Userinfo{
|
||||||
Userdetail{Id: 1}, 1.78, []byte{1, 2, 3}, true}
|
0, "xiaolunwen", "dev", "lunny", time.Now(),
|
||||||
|
Userdetail{Id: 1},
|
||||||
|
1.78,
|
||||||
|
[]byte{1, 2, 3},
|
||||||
|
true,
|
||||||
|
}
|
||||||
cnt, err := testEngine.Insert(&user)
|
cnt, err := testEngine.Insert(&user)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, cnt, "insert not returned 1")
|
assert.EqualValues(t, 1, cnt, "insert not returned 1")
|
||||||
|
@ -161,8 +167,10 @@ func TestInsertAutoIncr(t *testing.T) {
|
||||||
assertSync(t, new(Userinfo))
|
assertSync(t, new(Userinfo))
|
||||||
|
|
||||||
// auto increment insert
|
// auto increment insert
|
||||||
user := Userinfo{Username: "xiaolunwen2", Departname: "dev", Alias: "lunny", Created: time.Now(),
|
user := Userinfo{
|
||||||
Detail: Userdetail{Id: 1}, Height: 1.78, Avatar: []byte{1, 2, 3}, IsMan: true}
|
Username: "xiaolunwen2", Departname: "dev", Alias: "lunny", Created: time.Now(),
|
||||||
|
Detail: Userdetail{Id: 1}, Height: 1.78, Avatar: []byte{1, 2, 3}, IsMan: true,
|
||||||
|
}
|
||||||
cnt, err := testEngine.Insert(&user)
|
cnt, err := testEngine.Insert(&user)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, cnt)
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
@ -184,7 +192,7 @@ func TestInsertDefault(t *testing.T) {
|
||||||
err := testEngine.Sync(di)
|
err := testEngine.Sync(di)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var di2 = DefaultInsert{Name: "test"}
|
di2 := DefaultInsert{Name: "test"}
|
||||||
_, err = testEngine.Omit(testEngine.GetColumnMapper().Obj2Table("Status")).Insert(&di2)
|
_, err = testEngine.Omit(testEngine.GetColumnMapper().Obj2Table("Status")).Insert(&di2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
@ -210,7 +218,7 @@ func TestInsertDefault2(t *testing.T) {
|
||||||
err := testEngine.Sync(di)
|
err := testEngine.Sync(di)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var di2 = DefaultInsert2{Name: "test"}
|
di2 := DefaultInsert2{Name: "test"}
|
||||||
_, err = testEngine.Omit(testEngine.GetColumnMapper().Obj2Table("CheckTime")).Insert(&di2)
|
_, err = testEngine.Omit(testEngine.GetColumnMapper().Obj2Table("CheckTime")).Insert(&di2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
@ -438,7 +446,7 @@ func TestCreatedJsonTime(t *testing.T) {
|
||||||
assert.True(t, has)
|
assert.True(t, has)
|
||||||
assert.EqualValues(t, time.Time(ci5.Created).Unix(), time.Time(di5.Created).Unix())
|
assert.EqualValues(t, time.Time(ci5.Created).Unix(), time.Time(di5.Created).Unix())
|
||||||
|
|
||||||
var dis = make([]MyJSONTime, 0)
|
dis := make([]MyJSONTime, 0)
|
||||||
err = testEngine.Find(&dis)
|
err = testEngine.Find(&dis)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
@ -761,7 +769,7 @@ func TestInsertWhere(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(InsertWhere))
|
assertSync(t, new(InsertWhere))
|
||||||
|
|
||||||
var i = InsertWhere{
|
i := InsertWhere{
|
||||||
RepoId: 1,
|
RepoId: 1,
|
||||||
Width: 10,
|
Width: 10,
|
||||||
Height: 20,
|
Height: 20,
|
||||||
|
@ -871,7 +879,7 @@ func TestInsertExpr2(t *testing.T) {
|
||||||
|
|
||||||
assertSync(t, new(InsertExprsRelease))
|
assertSync(t, new(InsertExprsRelease))
|
||||||
|
|
||||||
var ie = InsertExprsRelease{
|
ie := InsertExprsRelease{
|
||||||
RepoId: 1,
|
RepoId: 1,
|
||||||
IsTag: true,
|
IsTag: true,
|
||||||
}
|
}
|
||||||
|
@ -1046,7 +1054,7 @@ func TestInsertIntSlice(t *testing.T) {
|
||||||
|
|
||||||
assert.NoError(t, testEngine.Sync(new(InsertIntSlice)))
|
assert.NoError(t, testEngine.Sync(new(InsertIntSlice)))
|
||||||
|
|
||||||
var v = InsertIntSlice{
|
v := InsertIntSlice{
|
||||||
NameIDs: []int{1, 2},
|
NameIDs: []int{1, 2},
|
||||||
}
|
}
|
||||||
cnt, err := testEngine.Insert(&v)
|
cnt, err := testEngine.Insert(&v)
|
||||||
|
@ -1063,7 +1071,7 @@ func TestInsertIntSlice(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, cnt)
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
var v3 = InsertIntSlice{
|
v3 := InsertIntSlice{
|
||||||
NameIDs: nil,
|
NameIDs: nil,
|
||||||
}
|
}
|
||||||
cnt, err = testEngine.Insert(&v3)
|
cnt, err = testEngine.Insert(&v3)
|
||||||
|
@ -1201,3 +1209,34 @@ func TestInsertMultipleMap(t *testing.T) {
|
||||||
Name: "xiaolunwen",
|
Name: "xiaolunwen",
|
||||||
}, res[1])
|
}, res[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkInsertSingle(b *testing.B) {
|
||||||
|
b.StopTimer()
|
||||||
|
type BenchmarkInsertStruct struct {
|
||||||
|
Id int64
|
||||||
|
Login string
|
||||||
|
Name string
|
||||||
|
Age int
|
||||||
|
Nation string
|
||||||
|
Created time.Time `xorm:"created"`
|
||||||
|
Updated time.Time `xorm:"updated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := testEngine.Sync(new(BenchmarkInsertStruct)); err != nil {
|
||||||
|
b.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
testEngine.SetLogLevel(log.LOG_OFF)
|
||||||
|
|
||||||
|
b.StartTimer()
|
||||||
|
for n := 0; n < b.N; n++ {
|
||||||
|
if _, err := testEngine.Insert(&BenchmarkInsertStruct{
|
||||||
|
Login: "test",
|
||||||
|
Name: "the test account",
|
||||||
|
Age: 40,
|
||||||
|
Nation: "China",
|
||||||
|
}); err != nil {
|
||||||
|
b.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -43,8 +43,8 @@ func (statement *Statement) GenInsertSQL(colNames []string, args []interface{})
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var hasInsertColumns = len(colNames) > 0
|
hasInsertColumns := len(colNames) > 0
|
||||||
var needSeq = len(table.AutoIncrement) > 0 && (statement.dialect.URI().DBType == schemas.ORACLE || statement.dialect.URI().DBType == schemas.DAMENG)
|
needSeq := len(table.AutoIncrement) > 0 && (statement.dialect.URI().DBType == schemas.ORACLE || statement.dialect.URI().DBType == schemas.DAMENG)
|
||||||
if needSeq {
|
if needSeq {
|
||||||
for _, col := range colNames {
|
for _, col := range colNames {
|
||||||
if strings.EqualFold(col, table.AutoIncrement) {
|
if strings.EqualFold(col, table.AutoIncrement) {
|
||||||
|
@ -188,7 +188,7 @@ func (statement *Statement) GenInsertMapSQL(columns []string, args []interface{}
|
||||||
tableName = statement.TableName()
|
tableName = statement.TableName()
|
||||||
)
|
)
|
||||||
|
|
||||||
if _, err := buf.WriteString(fmt.Sprintf("INSERT INTO %s (", statement.quote(tableName))); err != nil {
|
if _, err := fmt.Fprint(buf, "INSERT INTO ", statement.quote(tableName), " ("); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ func (statement *Statement) GenInsertMapSQL(columns []string, args []interface{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := buf.WriteString(fmt.Sprintf(" FROM %s WHERE ", statement.quote(tableName))); err != nil {
|
if _, err := fmt.Fprint(buf, " FROM ", statement.quote(tableName), " WHERE "); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ func (statement *Statement) GenInsertMultipleMapSQL(columns []string, argss [][]
|
||||||
tableName = statement.TableName()
|
tableName = statement.TableName()
|
||||||
)
|
)
|
||||||
|
|
||||||
if _, err := buf.WriteString(fmt.Sprintf("INSERT INTO %s (", statement.quote(tableName))); err != nil {
|
if _, err := fmt.Fprint(buf, "INSERT INTO ", statement.quote(tableName), " ("); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ func (statement *Statement) GenQuerySQL(sqlOrArgs ...interface{}) (string, []int
|
||||||
return "", nil, ErrTableNotFound
|
return "", nil, ErrTableNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
var columnStr = statement.ColumnStr()
|
columnStr := statement.ColumnStr()
|
||||||
if len(statement.SelectStr) > 0 {
|
if len(statement.SelectStr) > 0 {
|
||||||
columnStr = statement.SelectStr
|
columnStr = statement.SelectStr
|
||||||
} else {
|
} else {
|
||||||
|
@ -83,7 +83,7 @@ func (statement *Statement) GenSumSQL(bean interface{}, columns ...string) (stri
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var sumStrs = make([]string, 0, len(columns))
|
sumStrs := make([]string, 0, len(columns))
|
||||||
for _, colName := range columns {
|
for _, colName := range columns {
|
||||||
if !strings.Contains(colName, " ") && !strings.Contains(colName, "(") {
|
if !strings.Contains(colName, " ") && !strings.Contains(colName, "(") {
|
||||||
colName = statement.quote(colName)
|
colName = statement.quote(colName)
|
||||||
|
@ -119,7 +119,7 @@ func (statement *Statement) GenGetSQL(bean interface{}) (string, []interface{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var columnStr = statement.ColumnStr()
|
columnStr := statement.ColumnStr()
|
||||||
if len(statement.SelectStr) > 0 {
|
if len(statement.SelectStr) > 0 {
|
||||||
columnStr = statement.SelectStr
|
columnStr = statement.SelectStr
|
||||||
} else {
|
} else {
|
||||||
|
@ -180,7 +180,7 @@ func (statement *Statement) GenCountSQL(beans ...interface{}) (string, []interfa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var selectSQL = statement.SelectStr
|
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())
|
||||||
|
@ -211,8 +211,8 @@ func (statement *Statement) GenCountSQL(beans ...interface{}) (string, []interfa
|
||||||
|
|
||||||
func (statement *Statement) fromBuilder() *strings.Builder {
|
func (statement *Statement) fromBuilder() *strings.Builder {
|
||||||
var builder strings.Builder
|
var builder strings.Builder
|
||||||
var quote = statement.quote
|
quote := statement.quote
|
||||||
var dialect = statement.dialect
|
dialect := statement.dialect
|
||||||
|
|
||||||
builder.WriteString(" FROM ")
|
builder.WriteString(" FROM ")
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
||||||
}
|
}
|
||||||
|
|
||||||
var buf strings.Builder
|
var buf strings.Builder
|
||||||
fmt.Fprintf(&buf, "SELECT %v%v%v%v%v", distinct, top, columnStr, fromStr, whereStr)
|
fmt.Fprint(&buf, "SELECT ", distinct, top, columnStr, fromStr, whereStr)
|
||||||
if len(mssqlCondi) > 0 {
|
if len(mssqlCondi) > 0 {
|
||||||
if len(whereStr) > 0 {
|
if len(whereStr) > 0 {
|
||||||
fmt.Fprint(&buf, " AND ", mssqlCondi)
|
fmt.Fprint(&buf, " AND ", mssqlCondi)
|
||||||
|
@ -326,9 +326,9 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
||||||
if dialect.URI().DBType != schemas.MSSQL && dialect.URI().DBType != schemas.ORACLE {
|
if dialect.URI().DBType != schemas.MSSQL && dialect.URI().DBType != schemas.ORACLE {
|
||||||
if statement.Start > 0 {
|
if statement.Start > 0 {
|
||||||
if pLimitN != nil {
|
if pLimitN != nil {
|
||||||
fmt.Fprintf(&buf, " LIMIT %v OFFSET %v", *pLimitN, statement.Start)
|
fmt.Fprint(&buf, " LIMIT ", *pLimitN, " OFFSET ", statement.Start)
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(&buf, " LIMIT 0 OFFSET %v", statement.Start)
|
fmt.Fprint(&buf, " LIMIT 0 OFFSET ", statement.Start)
|
||||||
}
|
}
|
||||||
} else if pLimitN != nil {
|
} else if pLimitN != nil {
|
||||||
fmt.Fprint(&buf, " LIMIT ", *pLimitN)
|
fmt.Fprint(&buf, " LIMIT ", *pLimitN)
|
||||||
|
@ -341,8 +341,8 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
||||||
if rawColStr == "*" {
|
if rawColStr == "*" {
|
||||||
rawColStr = "at.*"
|
rawColStr = "at.*"
|
||||||
}
|
}
|
||||||
fmt.Fprintf(&buf, "SELECT %v FROM (SELECT %v,ROWNUM RN FROM (%v) at WHERE ROWNUM <= %d) aat WHERE RN > %d",
|
fmt.Fprint(&buf, "SELECT ", columnStr, " FROM (SELECT ", rawColStr, ",ROWNUM RN FROM (", oldString, ") at WHERE ROWNUM <= ", statement.Start+*pLimitN, ") aat WHERE RN > ",
|
||||||
columnStr, rawColStr, oldString, statement.Start+*pLimitN, statement.Start)
|
statement.Start)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -436,7 +436,7 @@ func (statement *Statement) GenFindSQL(autoCond builder.Cond) (string, []interfa
|
||||||
return "", nil, ErrTableNotFound
|
return "", nil, ErrTableNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
var columnStr = statement.ColumnStr()
|
columnStr := statement.ColumnStr()
|
||||||
if len(statement.SelectStr) > 0 {
|
if len(statement.SelectStr) > 0 {
|
||||||
columnStr = statement.SelectStr
|
columnStr = statement.SelectStr
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -156,14 +156,14 @@ func (session *Session) insertMultipleStruct(rowsSlicePtr interface{}) (int64, e
|
||||||
}
|
}
|
||||||
args = append(args, val)
|
args = append(args, val)
|
||||||
|
|
||||||
var colName = col.Name
|
colName := col.Name
|
||||||
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
||||||
col := table.GetColumn(colName)
|
col := table.GetColumn(colName)
|
||||||
setColumnTime(bean, col, t)
|
setColumnTime(bean, col, t)
|
||||||
})
|
})
|
||||||
} else if col.IsVersion && session.statement.CheckVersion {
|
} else if col.IsVersion && session.statement.CheckVersion {
|
||||||
args = append(args, 1)
|
args = append(args, 1)
|
||||||
var colName = col.Name
|
colName := col.Name
|
||||||
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
||||||
col := table.GetColumn(colName)
|
col := table.GetColumn(colName)
|
||||||
setColumnInt(bean, col, 1)
|
setColumnInt(bean, col, 1)
|
||||||
|
@ -276,7 +276,7 @@ func (session *Session) insertStruct(bean interface{}) (int64, error) {
|
||||||
processor.BeforeInsert()
|
processor.BeforeInsert()
|
||||||
}
|
}
|
||||||
|
|
||||||
var tableName = session.statement.TableName()
|
tableName := session.statement.TableName()
|
||||||
table := session.statement.RefTable
|
table := session.statement.RefTable
|
||||||
|
|
||||||
colNames, args, err := session.genInsertColumns(bean)
|
colNames, args, err := session.genInsertColumns(bean)
|
||||||
|
@ -470,7 +470,7 @@ func (session *Session) genInsertColumns(bean interface{}) ([]string, []interfac
|
||||||
if session.statement.OmitColumnMap.Contain(col.Name) {
|
if session.statement.OmitColumnMap.Contain(col.Name) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if len(session.statement.ColumnMap) > 0 && !session.statement.ColumnMap.Contain(col.Name) {
|
if !session.statement.ColumnMap.Contain(col.Name) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if session.statement.IncrColumns.IsColExist(col.Name) {
|
if session.statement.IncrColumns.IsColExist(col.Name) {
|
||||||
|
@ -517,7 +517,7 @@ func (session *Session) genInsertColumns(bean interface{}) ([]string, []interfac
|
||||||
}
|
}
|
||||||
args = append(args, val)
|
args = append(args, val)
|
||||||
|
|
||||||
var colName = col.Name
|
colName := col.Name
|
||||||
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
||||||
col := table.GetColumn(colName)
|
col := table.GetColumn(colName)
|
||||||
setColumnTime(bean, col, t)
|
setColumnTime(bean, col, t)
|
||||||
|
@ -547,7 +547,7 @@ func (session *Session) insertMapInterface(m map[string]interface{}) (int64, err
|
||||||
return 0, ErrTableNotFound
|
return 0, ErrTableNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
var columns = make([]string, 0, len(m))
|
columns := make([]string, 0, len(m))
|
||||||
exprs := session.statement.ExprColumns
|
exprs := session.statement.ExprColumns
|
||||||
for k := range m {
|
for k := range m {
|
||||||
if !exprs.IsColExist(k) {
|
if !exprs.IsColExist(k) {
|
||||||
|
@ -556,7 +556,7 @@ func (session *Session) insertMapInterface(m map[string]interface{}) (int64, err
|
||||||
}
|
}
|
||||||
sort.Strings(columns)
|
sort.Strings(columns)
|
||||||
|
|
||||||
var args = make([]interface{}, 0, len(m))
|
args := make([]interface{}, 0, len(m))
|
||||||
for _, colName := range columns {
|
for _, colName := range columns {
|
||||||
args = append(args, m[colName])
|
args = append(args, m[colName])
|
||||||
}
|
}
|
||||||
|
@ -574,7 +574,7 @@ func (session *Session) insertMultipleMapInterface(maps []map[string]interface{}
|
||||||
return 0, ErrTableNotFound
|
return 0, ErrTableNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
var columns = make([]string, 0, len(maps[0]))
|
columns := make([]string, 0, len(maps[0]))
|
||||||
exprs := session.statement.ExprColumns
|
exprs := session.statement.ExprColumns
|
||||||
for k := range maps[0] {
|
for k := range maps[0] {
|
||||||
if !exprs.IsColExist(k) {
|
if !exprs.IsColExist(k) {
|
||||||
|
@ -583,9 +583,9 @@ func (session *Session) insertMultipleMapInterface(maps []map[string]interface{}
|
||||||
}
|
}
|
||||||
sort.Strings(columns)
|
sort.Strings(columns)
|
||||||
|
|
||||||
var argss = make([][]interface{}, 0, len(maps))
|
argss := make([][]interface{}, 0, len(maps))
|
||||||
for _, m := range maps {
|
for _, m := range maps {
|
||||||
var args = make([]interface{}, 0, len(m))
|
args := make([]interface{}, 0, len(m))
|
||||||
for _, colName := range columns {
|
for _, colName := range columns {
|
||||||
args = append(args, m[colName])
|
args = append(args, m[colName])
|
||||||
}
|
}
|
||||||
|
@ -605,7 +605,7 @@ func (session *Session) insertMapString(m map[string]string) (int64, error) {
|
||||||
return 0, ErrTableNotFound
|
return 0, ErrTableNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
var columns = make([]string, 0, len(m))
|
columns := make([]string, 0, len(m))
|
||||||
exprs := session.statement.ExprColumns
|
exprs := session.statement.ExprColumns
|
||||||
for k := range m {
|
for k := range m {
|
||||||
if !exprs.IsColExist(k) {
|
if !exprs.IsColExist(k) {
|
||||||
|
@ -615,7 +615,7 @@ func (session *Session) insertMapString(m map[string]string) (int64, error) {
|
||||||
|
|
||||||
sort.Strings(columns)
|
sort.Strings(columns)
|
||||||
|
|
||||||
var args = make([]interface{}, 0, len(m))
|
args := make([]interface{}, 0, len(m))
|
||||||
for _, colName := range columns {
|
for _, colName := range columns {
|
||||||
args = append(args, m[colName])
|
args = append(args, m[colName])
|
||||||
}
|
}
|
||||||
|
@ -633,7 +633,7 @@ func (session *Session) insertMultipleMapString(maps []map[string]string) (int64
|
||||||
return 0, ErrTableNotFound
|
return 0, ErrTableNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
var columns = make([]string, 0, len(maps[0]))
|
columns := make([]string, 0, len(maps[0]))
|
||||||
exprs := session.statement.ExprColumns
|
exprs := session.statement.ExprColumns
|
||||||
for k := range maps[0] {
|
for k := range maps[0] {
|
||||||
if !exprs.IsColExist(k) {
|
if !exprs.IsColExist(k) {
|
||||||
|
@ -642,9 +642,9 @@ func (session *Session) insertMultipleMapString(maps []map[string]string) (int64
|
||||||
}
|
}
|
||||||
sort.Strings(columns)
|
sort.Strings(columns)
|
||||||
|
|
||||||
var argss = make([][]interface{}, 0, len(maps))
|
argss := make([][]interface{}, 0, len(maps))
|
||||||
for _, m := range maps {
|
for _, m := range maps {
|
||||||
var args = make([]interface{}, 0, len(m))
|
args := make([]interface{}, 0, len(m))
|
||||||
for _, colName := range columns {
|
for _, colName := range columns {
|
||||||
args = append(args, m[colName])
|
args = append(args, m[colName])
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue