Add ORDER BY SEQ_IN_INDEX to MySQL GetIndexes to Fix IndexTests (#2152)
Reviewed-on: https://gitea.com/xorm/xorm/pulls/2152 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Andrew Thornton <art27@cantab.net> Co-committed-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
60540cbabe
commit
eeb7fcf22c
|
@ -179,11 +179,9 @@ func (db *mysql) Init(uri *URI) error {
|
||||||
return db.Base.Init(db, uri)
|
return db.Base.Init(db, uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var mysqlColAliases = map[string]string{
|
||||||
mysqlColAliases = map[string]string{
|
"numeric": "decimal",
|
||||||
"numeric": "decimal",
|
}
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// Alias returns a alias of column
|
// Alias returns a alias of column
|
||||||
func (db *mysql) Alias(col string) string {
|
func (db *mysql) Alias(col string) string {
|
||||||
|
@ -243,7 +241,7 @@ func (db *mysql) Features() *DialectFeatures {
|
||||||
func (db *mysql) SetParams(params map[string]string) {
|
func (db *mysql) SetParams(params map[string]string) {
|
||||||
rowFormat, ok := params["rowFormat"]
|
rowFormat, ok := params["rowFormat"]
|
||||||
if ok {
|
if ok {
|
||||||
var t = strings.ToUpper(rowFormat)
|
t := strings.ToUpper(rowFormat)
|
||||||
switch t {
|
switch t {
|
||||||
case "COMPACT":
|
case "COMPACT":
|
||||||
fallthrough
|
fallthrough
|
||||||
|
@ -562,11 +560,11 @@ func (db *mysql) GetTables(queryer core.Queryer, ctx context.Context) ([]*schema
|
||||||
func (db *mysql) SetQuotePolicy(quotePolicy QuotePolicy) {
|
func (db *mysql) SetQuotePolicy(quotePolicy QuotePolicy) {
|
||||||
switch quotePolicy {
|
switch quotePolicy {
|
||||||
case QuotePolicyNone:
|
case QuotePolicyNone:
|
||||||
var q = mysqlQuoter
|
q := mysqlQuoter
|
||||||
q.IsReserved = schemas.AlwaysNoReserve
|
q.IsReserved = schemas.AlwaysNoReserve
|
||||||
db.quoter = q
|
db.quoter = q
|
||||||
case QuotePolicyReserved:
|
case QuotePolicyReserved:
|
||||||
var q = mysqlQuoter
|
q := mysqlQuoter
|
||||||
q.IsReserved = db.IsReserved
|
q.IsReserved = db.IsReserved
|
||||||
db.quoter = q
|
db.quoter = q
|
||||||
case QuotePolicyAlways:
|
case QuotePolicyAlways:
|
||||||
|
@ -578,7 +576,7 @@ func (db *mysql) SetQuotePolicy(quotePolicy QuotePolicy) {
|
||||||
|
|
||||||
func (db *mysql) GetIndexes(queryer core.Queryer, ctx context.Context, tableName string) (map[string]*schemas.Index, error) {
|
func (db *mysql) GetIndexes(queryer core.Queryer, ctx context.Context, tableName string) (map[string]*schemas.Index, error) {
|
||||||
args := []interface{}{db.uri.DBName, tableName}
|
args := []interface{}{db.uri.DBName, tableName}
|
||||||
s := "SELECT `INDEX_NAME`, `NON_UNIQUE`, `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`STATISTICS` WHERE `TABLE_SCHEMA` = ? AND `TABLE_NAME` = ?"
|
s := "SELECT `INDEX_NAME`, `NON_UNIQUE`, `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`STATISTICS` WHERE `TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? ORDER BY `SEQ_IN_INDEX`"
|
||||||
|
|
||||||
rows, err := queryer.QueryContext(ctx, s, args...)
|
rows, err := queryer.QueryContext(ctx, s, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -669,7 +667,7 @@ func (db *mysql) CreateTableSQL(ctx context.Context, queryer core.Queryer, table
|
||||||
b.WriteString(table.StoreEngine)
|
b.WriteString(table.StoreEngine)
|
||||||
}
|
}
|
||||||
|
|
||||||
var charset = table.Charset
|
charset := table.Charset
|
||||||
if len(charset) == 0 {
|
if len(charset) == 0 {
|
||||||
charset = db.URI().Charset
|
charset = db.URI().Charset
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue