parent
3a868531e9
commit
4691a4f3ba
25
base_test.go
25
base_test.go
|
@ -780,6 +780,30 @@ func testCreatedAndUpdated(engine *Engine, t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type IndexOrUnique struct {
|
||||||
|
Id int64
|
||||||
|
Index int `xorm:"index"`
|
||||||
|
Unique int `xorm:"unique"`
|
||||||
|
Group1 int `xorm:"index(ttt)"`
|
||||||
|
Group2 int `xorm:"index(ttt)"`
|
||||||
|
UniGroup1 int `xorm:"unique(lll)"`
|
||||||
|
UniGroup2 int `xorm:"unique(lll)"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func testIndexAndUnique(engine *Engine, t *testing.T) {
|
||||||
|
err := engine.DropTables(&IndexOrUnique{})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = engine.CreateTables(&IndexOrUnique{})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func testAll(engine *Engine, t *testing.T) {
|
func testAll(engine *Engine, t *testing.T) {
|
||||||
directCreateTable(engine, t)
|
directCreateTable(engine, t)
|
||||||
mapper(engine, t)
|
mapper(engine, t)
|
||||||
|
@ -814,4 +838,5 @@ func testAll(engine *Engine, t *testing.T) {
|
||||||
testColTypes(engine, t)
|
testColTypes(engine, t)
|
||||||
testCustomType(engine, t)
|
testCustomType(engine, t)
|
||||||
testCreatedAndUpdated(engine, t)
|
testCreatedAndUpdated(engine, t)
|
||||||
|
testIndexAndUnique(engine, t)
|
||||||
}
|
}
|
||||||
|
|
11
mapper.go
11
mapper.go
|
@ -10,6 +10,17 @@ type IMapper interface {
|
||||||
Table2Obj(string) string
|
Table2Obj(string) string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SameMapper struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m SameMapper) Obj2Table(o string) string {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m SameMapper) Table2Obj(t string) string {
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
|
||||||
type SnakeMapper struct {
|
type SnakeMapper struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,7 +271,7 @@ func (statement *Statement) genIndexSQL() []string {
|
||||||
var sqls []string = make([]string, 0)
|
var sqls []string = make([]string, 0)
|
||||||
for indexName, cols := range statement.RefTable.Indexes {
|
for indexName, cols := range statement.RefTable.Indexes {
|
||||||
sql := fmt.Sprintf("CREATE INDEX IDX_%v_%v ON %v (%v);", statement.TableName(), indexName,
|
sql := fmt.Sprintf("CREATE INDEX IDX_%v_%v ON %v (%v);", statement.TableName(), indexName,
|
||||||
statement.TableName(), strings.Join(cols, ","))
|
statement.Engine.Quote(statement.TableName()), statement.Engine.Quote(strings.Join(cols, statement.Engine.Quote(","))))
|
||||||
sqls = append(sqls, sql)
|
sqls = append(sqls, sql)
|
||||||
}
|
}
|
||||||
return sqls
|
return sqls
|
||||||
|
@ -281,7 +281,7 @@ func (statement *Statement) genUniqueSQL() []string {
|
||||||
var sqls []string = make([]string, 0)
|
var sqls []string = make([]string, 0)
|
||||||
for indexName, cols := range statement.RefTable.Uniques {
|
for indexName, cols := range statement.RefTable.Uniques {
|
||||||
sql := fmt.Sprintf("CREATE UNIQUE INDEX UQE_%v_%v ON %v (%v);", statement.TableName(), indexName,
|
sql := fmt.Sprintf("CREATE UNIQUE INDEX UQE_%v_%v ON %v (%v);", statement.TableName(), indexName,
|
||||||
statement.TableName(), strings.Join(cols, ","))
|
statement.Engine.Quote(statement.TableName()), statement.Engine.Quote(strings.Join(cols, statement.Engine.Quote(","))))
|
||||||
sqls = append(sqls, sql)
|
sqls = append(sqls, sql)
|
||||||
}
|
}
|
||||||
return sqls
|
return sqls
|
||||||
|
|
Loading…
Reference in New Issue