-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve indices for
action
table (#23532)
Close #21611 Add the index mentioned in #21611 (comment) . Since we already have an index for `("created_unix", "user_id", "is_deleted")` columns on PostgreSQL, I removed the database type check to apply this index to all types of databases.
- Loading branch information
Showing
3 changed files
with
51 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Copyright 2023 The Gitea Authors. All rights reserved. | ||
// SPDX-License-Identifier: MIT | ||
|
||
package v1_20 //nolint | ||
|
||
import ( | ||
"code.gitea.io/gitea/modules/timeutil" | ||
|
||
"xorm.io/xorm" | ||
"xorm.io/xorm/schemas" | ||
) | ||
|
||
type Action struct { | ||
UserID int64 // Receiver user id. | ||
ActUserID int64 // Action user id. | ||
RepoID int64 | ||
IsDeleted bool `xorm:"NOT NULL DEFAULT false"` | ||
IsPrivate bool `xorm:"NOT NULL DEFAULT false"` | ||
CreatedUnix timeutil.TimeStamp `xorm:"created"` | ||
} | ||
|
||
// TableName sets the name of this table | ||
func (a *Action) TableName() string { | ||
return "action" | ||
} | ||
|
||
// TableIndices implements xorm's TableIndices interface | ||
func (a *Action) TableIndices() []*schemas.Index { | ||
repoIndex := schemas.NewIndex("r_u_d", schemas.IndexType) | ||
repoIndex.AddColumn("repo_id", "user_id", "is_deleted") | ||
|
||
actUserIndex := schemas.NewIndex("au_r_c_u_d", schemas.IndexType) | ||
actUserIndex.AddColumn("act_user_id", "repo_id", "created_unix", "user_id", "is_deleted") | ||
|
||
cudIndex := schemas.NewIndex("c_u_d", schemas.IndexType) | ||
cudIndex.AddColumn("created_unix", "user_id", "is_deleted") | ||
|
||
indices := []*schemas.Index{actUserIndex, repoIndex, cudIndex} | ||
|
||
return indices | ||
} | ||
|
||
func ImproveActionTableIndices(x *xorm.Engine) error { | ||
return x.Sync(new(Action)) | ||
} |