From cbbd1f09e10683d0709f86eb50b3cb84ead397f8 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 9 May 2024 12:47:01 +0000 Subject: [PATCH 1/4] Add more tests for extends (#2443) Reviewed-on: https://gitea.com/xorm/xorm/pulls/2443 --- tests/session_find_test.go | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tests/session_find_test.go b/tests/session_find_test.go index d991e6ba..33552999 100644 --- a/tests/session_find_test.go +++ b/tests/session_find_test.go @@ -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'"` From d47f35b260c638a9cbee9a7a0caf81015646804b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 15 May 2024 08:45:25 +0000 Subject: [PATCH 2/4] Branch name change (#2459) Reviewed-on: https://gitea.com/xorm/xorm/pulls/2459 --- .gitea/workflows/test-cockroach.yml | 3 ++- .gitea/workflows/test-mariadb.yml | 3 ++- .gitea/workflows/test-mssql-collation.yml | 3 ++- .gitea/workflows/test-mssql.yml | 3 ++- .gitea/workflows/test-mysql.yml | 3 ++- .gitea/workflows/test-mysql8.yml | 3 ++- .gitea/workflows/test-postgres.yml | 3 ++- .gitea/workflows/test-sqlite.yml | 3 ++- .gitea/workflows/test-tidb.yml | 3 ++- 9 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/test-cockroach.yml b/.gitea/workflows/test-cockroach.yml index c426f192..64c2a185 100644 --- a/.gitea/workflows/test-cockroach.yml +++ b/.gitea/workflows/test-cockroach.yml @@ -2,7 +2,8 @@ name: test cockroach on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-mariadb.yml b/.gitea/workflows/test-mariadb.yml index 629d8faf..2b610d2b 100644 --- a/.gitea/workflows/test-mariadb.yml +++ b/.gitea/workflows/test-mariadb.yml @@ -2,7 +2,8 @@ name: test mariadb on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-mssql-collation.yml b/.gitea/workflows/test-mssql-collation.yml index f81f63f7..979e1bb0 100644 --- a/.gitea/workflows/test-mssql-collation.yml +++ b/.gitea/workflows/test-mssql-collation.yml @@ -2,7 +2,8 @@ name: test mssql on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-mssql.yml b/.gitea/workflows/test-mssql.yml index 965262c8..cb155699 100644 --- a/.gitea/workflows/test-mssql.yml +++ b/.gitea/workflows/test-mssql.yml @@ -2,7 +2,8 @@ name: test mssql on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-mysql.yml b/.gitea/workflows/test-mysql.yml index 49656bbe..198f8980 100644 --- a/.gitea/workflows/test-mysql.yml +++ b/.gitea/workflows/test-mysql.yml @@ -2,7 +2,8 @@ name: test mysql on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-mysql8.yml b/.gitea/workflows/test-mysql8.yml index 2b3dc0e7..252d28ff 100644 --- a/.gitea/workflows/test-mysql8.yml +++ b/.gitea/workflows/test-mysql8.yml @@ -2,7 +2,8 @@ name: test mysql8 on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-postgres.yml b/.gitea/workflows/test-postgres.yml index f2d4bbbe..f05b78f6 100644 --- a/.gitea/workflows/test-postgres.yml +++ b/.gitea/workflows/test-postgres.yml @@ -2,7 +2,8 @@ name: test postgres on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-sqlite.yml b/.gitea/workflows/test-sqlite.yml index 2fdf7410..427697cd 100644 --- a/.gitea/workflows/test-sqlite.yml +++ b/.gitea/workflows/test-sqlite.yml @@ -2,7 +2,8 @@ name: test sqlite on: push: branches: - - master + - main + - v1 pull_request: jobs: diff --git a/.gitea/workflows/test-tidb.yml b/.gitea/workflows/test-tidb.yml index afb23e50..6a02e348 100644 --- a/.gitea/workflows/test-tidb.yml +++ b/.gitea/workflows/test-tidb.yml @@ -2,7 +2,8 @@ name: test tidb on: push: branches: - - master + - main + - v1 pull_request: jobs: From 7654b7b7491806b6d0ad90dbd9acfd39dac3fce4 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Fri, 6 Dec 2024 17:26:39 +0000 Subject: [PATCH 3/4] add libsql as a valid driver type (#2481) support the libsql sqlite driver library https://github.com/tursodatabase/go-libsql Reviewed-on: https://gitea.com/xorm/xorm/pulls/2481 Reviewed-by: Lunny Xiao Co-authored-by: techknowlogick Co-committed-by: techknowlogick --- dialects/dialect.go | 1 + 1 file changed, 1 insertion(+) diff --git a/dialects/dialect.go b/dialects/dialect.go index 8e512c4f..f907c507 100644 --- a/dialects/dialect.go +++ b/dialects/dialect.go @@ -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{} }}, From 844543c7daa40a7a52d85996fa0a1e782da660c3 Mon Sep 17 00:00:00 2001 From: cenxiao Date: Fri, 28 Feb 2025 06:26:20 +0000 Subject: [PATCH 4/4] fix drop index SQL for Oracle (#2469) Adjust drop index SQL to work with Oracle Autonomous DB Issue: DROP INDEX IDX_casdoor_permission_rule_PTYPE ON casdoor_permission_rule Error report - ORA-00933: SQL command not properly ended Expected: DROP INDEX IDX_casdoor_permission_rule_PTYPE Co-authored-by: Cenxiao Zhao Co-authored-by: Lunny Xiao Reviewed-on: https://gitea.com/xorm/xorm/pulls/2469 Reviewed-by: Lunny Xiao Co-authored-by: cenxiao Co-committed-by: cenxiao --- dialects/oracle.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dialects/oracle.go b/dialects/oracle.go index 5f614b1a..0170bcae 100644 --- a/dialects/oracle.go +++ b/dialects/oracle.go @@ -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) }