mirror of https://github.com/go-gorm/gorm.git
Grow SQL capacity to reduce allocation
This commit is contained in:
parent
aaf0725771
commit
9f19378304
|
@ -42,6 +42,7 @@ func Create(config *Config) func(db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if db.Statement.SQL.String() == "" {
|
if db.Statement.SQL.String() == "" {
|
||||||
|
db.Statement.SQL.Grow(180)
|
||||||
db.Statement.AddClauseIfNotExists(clause.Insert{
|
db.Statement.AddClauseIfNotExists(clause.Insert{
|
||||||
Table: clause.Table{Name: db.Statement.Table},
|
Table: clause.Table{Name: db.Statement.Table},
|
||||||
})
|
})
|
||||||
|
@ -211,6 +212,7 @@ func ConvertToCreateValues(stmt *gorm.Statement) clause.Values {
|
||||||
|
|
||||||
switch stmt.ReflectValue.Kind() {
|
switch stmt.ReflectValue.Kind() {
|
||||||
case reflect.Slice, reflect.Array:
|
case reflect.Slice, reflect.Array:
|
||||||
|
stmt.SQL.Grow(stmt.ReflectValue.Len() * 15)
|
||||||
values.Values = make([][]interface{}, stmt.ReflectValue.Len())
|
values.Values = make([][]interface{}, stmt.ReflectValue.Len())
|
||||||
defaultValueFieldsHavingValue := map[string][]interface{}{}
|
defaultValueFieldsHavingValue := map[string][]interface{}{}
|
||||||
for i := 0; i < stmt.ReflectValue.Len(); i++ {
|
for i := 0; i < stmt.ReflectValue.Len(); i++ {
|
||||||
|
|
|
@ -30,6 +30,7 @@ func Delete(db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if db.Statement.SQL.String() == "" {
|
if db.Statement.SQL.String() == "" {
|
||||||
|
db.Statement.SQL.Grow(100)
|
||||||
db.Statement.AddClauseIfNotExists(clause.Delete{})
|
db.Statement.AddClauseIfNotExists(clause.Delete{})
|
||||||
|
|
||||||
if db.Statement.Schema != nil {
|
if db.Statement.Schema != nil {
|
||||||
|
|
|
@ -37,6 +37,7 @@ func Query(db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func BuildQuerySQL(db *gorm.DB) {
|
func BuildQuerySQL(db *gorm.DB) {
|
||||||
|
db.Statement.SQL.Grow(100)
|
||||||
clauseSelect := clause.Select{Distinct: db.Statement.Distinct}
|
clauseSelect := clause.Select{Distinct: db.Statement.Distinct}
|
||||||
|
|
||||||
if db.Statement.ReflectValue.Kind() == reflect.Struct {
|
if db.Statement.ReflectValue.Kind() == reflect.Struct {
|
||||||
|
|
|
@ -59,6 +59,7 @@ func Update(db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if db.Statement.SQL.String() == "" {
|
if db.Statement.SQL.String() == "" {
|
||||||
|
db.Statement.SQL.Grow(180)
|
||||||
db.Statement.AddClauseIfNotExists(clause.Update{})
|
db.Statement.AddClauseIfNotExists(clause.Update{})
|
||||||
if set := ConvertToAssignments(db.Statement); len(set) != 0 {
|
if set := ConvertToAssignments(db.Statement); len(set) != 0 {
|
||||||
db.Statement.AddClause(set)
|
db.Statement.AddClause(set)
|
||||||
|
|
Loading…
Reference in New Issue