mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-26 08:58:24 +00:00 
			
		
		
		
	Close #21611 Add the index mentioned in https://github.com/go-gitea/gitea/issues/21611#issuecomment-1451113252 . 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.
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // 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))
 | |
| }
 |