Fix batch insert
This commit is contained in:
parent
1891d89b66
commit
92c475925d
|
@ -37,62 +37,62 @@ func TestBuilder(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var cond Condition
|
var cond Condition
|
||||||
has, err := testEngine.Where(builder.Eq{"col_name": "col1"}).Get(&cond)
|
has, err := testEngine.Where(builder.Eq{"`col_name`": "col1"}).Get(&cond)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, true, has, "records should exist")
|
assert.Equal(t, true, has, "records should exist")
|
||||||
|
|
||||||
has, err = testEngine.Where(builder.Eq{"col_name": "col1"}.
|
has, err = testEngine.Where(builder.Eq{"`col_name`": "col1"}.
|
||||||
And(builder.Eq{"op": OpEqual})).
|
And(builder.Eq{"`op`": OpEqual})).
|
||||||
NoAutoCondition().
|
NoAutoCondition().
|
||||||
Get(&cond)
|
Get(&cond)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, true, has, "records should exist")
|
assert.Equal(t, true, has, "records should exist")
|
||||||
|
|
||||||
has, err = testEngine.Where(builder.Eq{"col_name": "col1", "op": OpEqual, "value": "1"}).
|
has, err = testEngine.Where(builder.Eq{"`col_name`": "col1", "`op`": OpEqual, "`value`": "1"}).
|
||||||
NoAutoCondition().
|
NoAutoCondition().
|
||||||
Get(&cond)
|
Get(&cond)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, true, has, "records should exist")
|
assert.Equal(t, true, has, "records should exist")
|
||||||
|
|
||||||
has, err = testEngine.Where(builder.Eq{"col_name": "col1"}.
|
has, err = testEngine.Where(builder.Eq{"`col_name`": "col1"}.
|
||||||
And(builder.Neq{"op": OpEqual})).
|
And(builder.Neq{"`op`": OpEqual})).
|
||||||
NoAutoCondition().
|
NoAutoCondition().
|
||||||
Get(&cond)
|
Get(&cond)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, false, has, "records should not exist")
|
assert.Equal(t, false, has, "records should not exist")
|
||||||
|
|
||||||
var conds []Condition
|
var conds []Condition
|
||||||
err = testEngine.Where(builder.Eq{"col_name": "col1"}.
|
err = testEngine.Where(builder.Eq{"`col_name`": "col1"}.
|
||||||
And(builder.Eq{"op": OpEqual})).
|
And(builder.Eq{"`op`": OpEqual})).
|
||||||
Find(&conds)
|
Find(&conds)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, len(conds), "records should exist")
|
assert.EqualValues(t, 1, len(conds), "records should exist")
|
||||||
|
|
||||||
conds = make([]Condition, 0)
|
conds = make([]Condition, 0)
|
||||||
err = testEngine.Where(builder.Like{"col_name", "col"}).Find(&conds)
|
err = testEngine.Where(builder.Like{"`col_name`", "col"}).Find(&conds)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, len(conds), "records should exist")
|
assert.EqualValues(t, 1, len(conds), "records should exist")
|
||||||
|
|
||||||
conds = make([]Condition, 0)
|
conds = make([]Condition, 0)
|
||||||
err = testEngine.Where(builder.Expr("col_name = ?", "col1")).Find(&conds)
|
err = testEngine.Where(builder.Expr("`col_name` = ?", "col1")).Find(&conds)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, len(conds), "records should exist")
|
assert.EqualValues(t, 1, len(conds), "records should exist")
|
||||||
|
|
||||||
conds = make([]Condition, 0)
|
conds = make([]Condition, 0)
|
||||||
err = testEngine.Where(builder.In("col_name", "col1", "col2")).Find(&conds)
|
err = testEngine.Where(builder.In("`col_name`", "col1", "col2")).Find(&conds)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, len(conds), "records should exist")
|
assert.EqualValues(t, 1, len(conds), "records should exist")
|
||||||
|
|
||||||
conds = make([]Condition, 0)
|
conds = make([]Condition, 0)
|
||||||
err = testEngine.NotIn("col_name", "col1", "col2").Find(&conds)
|
err = testEngine.NotIn("`col_name`", "col1", "col2").Find(&conds)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 0, len(conds), "records should not exist")
|
assert.EqualValues(t, 0, len(conds), "records should not exist")
|
||||||
|
|
||||||
// complex condtions
|
// complex condtions
|
||||||
var where = builder.NewCond()
|
var where = builder.NewCond()
|
||||||
if true {
|
if true {
|
||||||
where = where.And(builder.Eq{"col_name": "col1"})
|
where = where.And(builder.Eq{"`col_name`": "col1"})
|
||||||
where = where.Or(builder.And(builder.In("col_name", "col1", "col2"), builder.Expr("col_name = ?", "col1")))
|
where = where.Or(builder.And(builder.In("`col_name`", "col1", "col2"), builder.Expr("`col_name` = ?", "col1")))
|
||||||
}
|
}
|
||||||
|
|
||||||
conds = make([]Condition, 0)
|
conds = make([]Condition, 0)
|
||||||
|
|
|
@ -118,6 +118,7 @@ func (session *Session) innerInsertMulti(rowsSlicePtr interface{}) (int64, error
|
||||||
colMultiPlaces []string
|
colMultiPlaces []string
|
||||||
args []interface{}
|
args []interface{}
|
||||||
cols []*schemas.Column
|
cols []*schemas.Column
|
||||||
|
insertCnt int
|
||||||
)
|
)
|
||||||
|
|
||||||
for i := 0; i < size; i++ {
|
for i := 0; i < size; i++ {
|
||||||
|
@ -155,7 +156,8 @@ func (session *Session) innerInsertMulti(rowsSlicePtr interface{}) (int64, error
|
||||||
colNames = append(colNames, col.Name)
|
colNames = append(colNames, col.Name)
|
||||||
cols = append(cols, col)
|
cols = append(cols, col)
|
||||||
}
|
}
|
||||||
colPlaces = append(colPlaces, "seq_"+tableName+".nextval")
|
colPlaces = append(colPlaces, fmt.Sprintf("seq_"+tableName+".nextval + %d", insertCnt))
|
||||||
|
insertCnt++
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue