Merge branch 'v1' into lunny/vul_scan
This commit is contained in:
commit
427f488300
|
@ -2,7 +2,8 @@ name: test cockroach
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test mariadb
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test mssql
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test mssql
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test mysql
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test mysql8
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test postgres
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test sqlite
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -2,7 +2,8 @@ name: test tidb
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
- v1
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -465,7 +465,7 @@ res, err := engine.Transaction(func(session *xorm.Session) (interface{}, error)
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
If you want to pull request, please see [CONTRIBUTING](https://gitea.com/xorm/xorm/src/branch/master/CONTRIBUTING.md). And you can also go to [Xorm on discourse](https://xorm.discourse.group) to discuss.
|
If you want to pull request, please see [CONTRIBUTING](CONTRIBUTING.md). And you can also go to [Xorm on discourse](https://xorm.discourse.group) to discuss.
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
|
|
@ -279,6 +279,7 @@ func regDrvsNDialects() bool {
|
||||||
"pgx": {"postgres", func() Driver { return &pqDriverPgx{} }, func() Dialect { return &postgres{} }},
|
"pgx": {"postgres", func() Driver { return &pqDriverPgx{} }, func() Dialect { return &postgres{} }},
|
||||||
"sqlite3": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }},
|
"sqlite3": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }},
|
||||||
"sqlite": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }},
|
"sqlite": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }},
|
||||||
|
"libsql": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }},
|
||||||
"oci8": {"oracle", func() Driver { return &oci8Driver{} }, func() Dialect { return &oracle{} }},
|
"oci8": {"oracle", func() Driver { return &oci8Driver{} }, func() Dialect { return &oracle{} }},
|
||||||
"godror": {"oracle", func() Driver { return &godrorDriver{} }, func() Dialect { return &oracle{} }},
|
"godror": {"oracle", func() Driver { return &godrorDriver{} }, func() Dialect { return &oracle{} }},
|
||||||
"oracle": {"oracle", func() Driver { return &oracleDriver{} }, func() Dialect { return &oracle{} }},
|
"oracle": {"oracle", func() Driver { return &oracleDriver{} }, func() Dialect { return &oracle{} }},
|
||||||
|
|
|
@ -402,6 +402,9 @@ func (db *mysql) AddColumnSQL(tableName string, col *schemas.Column) string {
|
||||||
// ModifyColumnSQL returns a SQL to modify SQL
|
// ModifyColumnSQL returns a SQL to modify SQL
|
||||||
func (db *mysql) ModifyColumnSQL(tableName string, col *schemas.Column) string {
|
func (db *mysql) ModifyColumnSQL(tableName string, col *schemas.Column) string {
|
||||||
s, _ := ColumnString(db.dialect, col, false, true)
|
s, _ := ColumnString(db.dialect, col, false, true)
|
||||||
|
if col.IsAutoIncrement {
|
||||||
|
s += " " + db.AutoIncrStr()
|
||||||
|
}
|
||||||
if col.Comment != "" {
|
if col.Comment != "" {
|
||||||
s += fmt.Sprintf(" COMMENT '%s'", col.Comment)
|
s += fmt.Sprintf(" COMMENT '%s'", col.Comment)
|
||||||
}
|
}
|
||||||
|
|
|
@ -751,3 +751,43 @@ func getKeysFromMap(m map[string]*schemas.Index) []string {
|
||||||
}
|
}
|
||||||
return ss
|
return ss
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type SyncTestUser struct {
|
||||||
|
Id int64 `xorm:"pk autoincr 'id' comment('primary key 1')"`
|
||||||
|
Name string `xorm:"'name' notnull comment('nickname')" json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *SyncTestUser) TableName() string {
|
||||||
|
return "sync_test_user"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type SyncTestUser2 struct {
|
||||||
|
Id int64 `xorm:"pk autoincr 'id' comment('primary key 2')"`
|
||||||
|
Name string `xorm:"'name' notnull comment('nickname')" json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *SyncTestUser2) TableName() string {
|
||||||
|
return "sync_test_user"
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSync2_3(t *testing.T) {
|
||||||
|
if testEngine.Dialect().URI().DBType == schemas.MYSQL {
|
||||||
|
assert.NoError(t, PrepareEngine())
|
||||||
|
assertSync(t, new(SyncTestUser))
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(SyncTestUser2)))
|
||||||
|
tables, err := testEngine.DBMetas()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
tableInfo, err := testEngine.TableInfo(new(SyncTestUser2))
|
||||||
|
|
||||||
|
assert.EqualValues(t, tables[0].GetColumn("id").IsAutoIncrement, tableInfo.GetColumn("id").IsAutoIncrement)
|
||||||
|
assert.EqualValues(t, tables[0].GetColumn("id").Name, tableInfo.GetColumn("id").Name)
|
||||||
|
assert.EqualValues(t, tables[0].GetColumn("id").SQLType.Name, tableInfo.GetColumn("id").SQLType.Name)
|
||||||
|
assert.EqualValues(t, tables[0].GetColumn("id").Nullable, tableInfo.GetColumn("id").Nullable)
|
||||||
|
assert.EqualValues(t, tables[0].GetColumn("id").Comment, tableInfo.GetColumn("id").Comment)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -899,6 +899,58 @@ func TestFindExtends3(t *testing.T) {
|
||||||
assert.EqualValues(t, 2, len(results))
|
assert.EqualValues(t, 2, len(results))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFindExtends4(t *testing.T) {
|
||||||
|
type FindExtends4A struct {
|
||||||
|
Id int64
|
||||||
|
Age int
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
type FindExtends4B struct {
|
||||||
|
Id int64
|
||||||
|
ExtId int64 `xorm:"index"`
|
||||||
|
Age int
|
||||||
|
Name string
|
||||||
|
Value int
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, PrepareEngine())
|
||||||
|
assertSync(t, new(FindExtends4A), new(FindExtends4B))
|
||||||
|
|
||||||
|
fe := FindExtends4A{
|
||||||
|
Age: 1,
|
||||||
|
Name: "1",
|
||||||
|
}
|
||||||
|
cnt, err := testEngine.Insert(&fe)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
cnt, err = testEngine.Insert(&FindExtends4B{
|
||||||
|
ExtId: fe.Id,
|
||||||
|
Age: 2,
|
||||||
|
Name: "2",
|
||||||
|
Value: 3,
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
type FindExtends4C struct {
|
||||||
|
FindExtends4A `xorm:"extends"`
|
||||||
|
FindExtends4B `xorm:"extends"`
|
||||||
|
}
|
||||||
|
var results []FindExtends4C
|
||||||
|
err = testEngine.Table("find_extends4_a").
|
||||||
|
Join("INNER", "find_extends4_b", "`find_extends4_b`.`ext_id`=`find_extends4_a`.`id`").
|
||||||
|
Find(&results)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, len(results))
|
||||||
|
assert.EqualValues(t, 1, results[0].FindExtends4A.Age)
|
||||||
|
assert.EqualValues(t, "1", results[0].FindExtends4A.Name)
|
||||||
|
assert.EqualValues(t, 2, results[0].FindExtends4B.Age)
|
||||||
|
assert.EqualValues(t, "2", results[0].FindExtends4B.Name)
|
||||||
|
assert.EqualValues(t, 3, results[0].FindExtends4B.Value)
|
||||||
|
}
|
||||||
|
|
||||||
func TestFindCacheLimit(t *testing.T) {
|
func TestFindCacheLimit(t *testing.T) {
|
||||||
type InviteCode struct {
|
type InviteCode struct {
|
||||||
ID int64 `xorm:"pk autoincr 'id'"`
|
ID int64 `xorm:"pk autoincr 'id'"`
|
||||||
|
|
Loading…
Reference in New Issue