Merge branch 'v1' into v1

This commit is contained in:
Lunny Xiao 2025-03-01 04:50:30 +00:00
commit 41f4c6060d
12 changed files with 82 additions and 9 deletions

View File

@ -2,7 +2,8 @@ name: test cockroach
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test mariadb
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test mssql
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test mssql
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test mysql
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test mysql8
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test postgres
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test sqlite
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -2,7 +2,8 @@ name: test tidb
on:
push:
branches:
- master
- main
- v1
pull_request:
jobs:

View File

@ -279,6 +279,7 @@ func regDrvsNDialects() bool {
"pgx": {"postgres", func() Driver { return &pqDriverPgx{} }, func() Dialect { return &postgres{} }},
"sqlite3": {"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{} }},
"godror": {"oracle", func() Driver { return &godrorDriver{} }, func() Dialect { return &oracle{} }},
"oracle": {"oracle", func() Driver { return &oracleDriver{} }, func() Dialect { return &oracle{} }},

View File

@ -684,6 +684,17 @@ func (db *oracle) IndexCheckSQL(tableName, idxName string) (string, []interface{
`WHERE TABLE_NAME = :1 AND INDEX_NAME = :2`, args
}
func (db *oracle) DropIndexSQL(tableName string, index *schemas.Index) string {
quote := db.dialect.Quoter().Quote
var name string
if index.IsRegular {
name = index.XName(tableName)
} else {
name = index.Name
}
return fmt.Sprintf("DROP INDEX %v", quote(name))
}
func (db *oracle) IsTableExist(queryer core.Queryer, ctx context.Context, tableName string) (bool, error) {
return db.HasRecords(queryer, ctx, `SELECT table_name FROM user_tables WHERE table_name = :1`, tableName)
}

View File

@ -899,6 +899,58 @@ func TestFindExtends3(t *testing.T) {
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) {
type InviteCode struct {
ID int64 `xorm:"pk autoincr 'id'"`