fixed bug #8 & #9

This commit is contained in:
Lunny Xiao 2013-09-06 14:32:20 +08:00
parent 3a868531e9
commit 4691a4f3ba
3 changed files with 38 additions and 2 deletions

View File

@ -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)
} }

View File

@ -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 {
} }

View File

@ -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