some optimzation (#2272)
Reviewed-on: https://gitea.com/xorm/xorm/pulls/2272
This commit is contained in:
parent
cb851a2f95
commit
caa8a029c6
|
@ -709,7 +709,13 @@ func (db *dameng) CreateTableSQL(ctx context.Context, queryer core.Queryer, tabl
|
|||
return "", false, err
|
||||
}
|
||||
}
|
||||
if _, err := b.WriteString(fmt.Sprintf("CONSTRAINT PK_%s PRIMARY KEY (", tableName)); err != nil {
|
||||
if _, err := b.WriteString("CONSTRAINT PK_"); err != nil {
|
||||
return "", false, err
|
||||
}
|
||||
if _, err := b.WriteString(tableName); err != nil {
|
||||
return "", false, err
|
||||
}
|
||||
if _, err := b.WriteString(" PRIMARY KEY ("); err != nil {
|
||||
return "", false, err
|
||||
}
|
||||
if err := quoter.JoinWrite(&b, pkList, ","); err != nil {
|
||||
|
@ -837,7 +843,11 @@ func addSingleQuote(name string) string {
|
|||
if name[0] == '\'' && name[len(name)-1] == '\'' {
|
||||
return name
|
||||
}
|
||||
return fmt.Sprintf("'%s'", name)
|
||||
var b strings.Builder
|
||||
b.WriteRune('\'')
|
||||
b.WriteString(name)
|
||||
b.WriteRune('\'')
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func (db *dameng) GetColumns(queryer core.Queryer, ctx context.Context, tableName string) ([]string, map[string]*schemas.Column, error) {
|
||||
|
|
|
@ -6,7 +6,7 @@ package dialects
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -29,10 +29,11 @@ func convertQuestionMark(sql, prefix string, start int) string {
|
|||
var isMaybeLineComment bool
|
||||
var isMaybeComment bool
|
||||
var isMaybeCommentEnd bool
|
||||
var index = start
|
||||
index := start
|
||||
for _, c := range sql {
|
||||
if !beginSingleQuote && !isLineComment && !isComment && c == '?' {
|
||||
buf.WriteString(fmt.Sprintf("%s%v", prefix, index))
|
||||
buf.WriteString(prefix)
|
||||
buf.WriteString(strconv.Itoa(index))
|
||||
index++
|
||||
} else {
|
||||
if isMaybeLineComment {
|
||||
|
|
|
@ -381,11 +381,17 @@ func (db *mysql) IsTableExist(queryer core.Queryer, ctx context.Context, tableNa
|
|||
func (db *mysql) AddColumnSQL(tableName string, col *schemas.Column) string {
|
||||
quoter := db.dialect.Quoter()
|
||||
s, _ := ColumnString(db, col, true)
|
||||
sql := fmt.Sprintf("ALTER TABLE %v ADD %v", quoter.Quote(tableName), s)
|
||||
var b strings.Builder
|
||||
b.WriteString("ALTER TABLE ")
|
||||
quoter.QuoteTo(&b, tableName)
|
||||
b.WriteString(" ADD ")
|
||||
b.WriteString(s)
|
||||
if len(col.Comment) > 0 {
|
||||
sql += " COMMENT '" + col.Comment + "'"
|
||||
b.WriteString(" COMMENT '")
|
||||
b.WriteString(col.Comment)
|
||||
b.WriteString("'")
|
||||
}
|
||||
return sql
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func (db *mysql) GetColumns(queryer core.Queryer, ctx context.Context, tableName string) ([]string, map[string]*schemas.Column, error) {
|
||||
|
|
|
@ -6,6 +6,7 @@ package statements
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"xorm.io/xorm/internal/utils"
|
||||
|
@ -26,14 +27,19 @@ func (statement *Statement) ConvertIDSQL(sqlStr string) string {
|
|||
return ""
|
||||
}
|
||||
|
||||
var top string
|
||||
var b strings.Builder
|
||||
b.WriteString("SELECT ")
|
||||
pLimitN := statement.LimitN
|
||||
if pLimitN != nil && statement.dialect.URI().DBType == schemas.MSSQL {
|
||||
top = fmt.Sprintf("TOP %d ", *pLimitN)
|
||||
b.WriteString("TOP ")
|
||||
b.WriteString(strconv.Itoa(*pLimitN))
|
||||
b.WriteString(" ")
|
||||
}
|
||||
b.WriteString(colstrs)
|
||||
b.WriteString(" FROM ")
|
||||
b.WriteString(sqls[1])
|
||||
|
||||
newsql := fmt.Sprintf("SELECT %s%s FROM %v", top, colstrs, sqls[1])
|
||||
return newsql
|
||||
return b.String()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
@ -54,7 +60,7 @@ func (statement *Statement) ConvertUpdateSQL(sqlStr string) (string, string) {
|
|||
return "", ""
|
||||
}
|
||||
|
||||
var whereStr = sqls[1]
|
||||
whereStr := sqls[1]
|
||||
|
||||
// TODO: for postgres only, if any other database?
|
||||
var paraStr string
|
||||
|
|
Loading…
Reference in New Issue