@@ -51,32 +51,62 @@ const (
5151// Notification represents a notification
5252type Notification struct {
5353 ID int64 `xorm:"pk autoincr"`
54- UserID int64 `xorm:"INDEX NOT NULL"`
55- RepoID int64 `xorm:"INDEX NOT NULL"`
54+ UserID int64 `xorm:"NOT NULL"`
55+ RepoID int64 `xorm:"NOT NULL"`
5656
57- Status NotificationStatus `xorm:"SMALLINT INDEX NOT NULL"`
58- Source NotificationSource `xorm:"SMALLINT INDEX NOT NULL"`
57+ Status NotificationStatus `xorm:"SMALLINT NOT NULL"`
58+ Source NotificationSource `xorm:"SMALLINT NOT NULL"`
5959
60- IssueID int64 `xorm:"INDEX NOT NULL"`
61- CommitID string `xorm:"INDEX"`
60+ IssueID int64 `xorm:"NOT NULL"`
61+ CommitID string
6262 CommentID int64
6363
64- UpdatedBy int64 `xorm:"INDEX NOT NULL"`
64+ UpdatedBy int64 `xorm:"NOT NULL"`
6565
6666 Issue * issues_model.Issue `xorm:"-"`
6767 Repository * repo_model.Repository `xorm:"-"`
6868 Comment * issues_model.Comment `xorm:"-"`
6969 User * user_model.User `xorm:"-"`
7070
71- CreatedUnix timeutil.TimeStamp `xorm:"created INDEX NOT NULL"`
72- UpdatedUnix timeutil.TimeStamp `xorm:"updated INDEX NOT NULL"`
71+ CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL"`
72+ UpdatedUnix timeutil.TimeStamp `xorm:"updated NOT NULL"`
7373}
7474
7575// TableIndices implements xorm's TableIndices interface
7676func (n * Notification ) TableIndices () []* schemas.Index {
77+ indices := make ([]* schemas.Index , 0 , 8 )
7778 usuuIndex := schemas .NewIndex ("u_s_uu" , schemas .IndexType )
7879 usuuIndex .AddColumn ("user_id" , "status" , "updated_unix" )
79- indices := []* schemas.Index {usuuIndex }
80+ indices = append (indices , usuuIndex )
81+
82+ // Add the individual indices that were previously defined in struct tags
83+ userIDIndex := schemas .NewIndex ("idx_notification_user_id" , schemas .IndexType )
84+ userIDIndex .AddColumn ("user_id" )
85+ indices = append (indices , userIDIndex )
86+
87+ repoIDIndex := schemas .NewIndex ("idx_notification_repo_id" , schemas .IndexType )
88+ repoIDIndex .AddColumn ("repo_id" )
89+ indices = append (indices , repoIDIndex )
90+
91+ statusIndex := schemas .NewIndex ("idx_notification_status" , schemas .IndexType )
92+ statusIndex .AddColumn ("status" )
93+ indices = append (indices , statusIndex )
94+
95+ sourceIndex := schemas .NewIndex ("idx_notification_source" , schemas .IndexType )
96+ sourceIndex .AddColumn ("source" )
97+ indices = append (indices , sourceIndex )
98+
99+ issueIDIndex := schemas .NewIndex ("idx_notification_issue_id" , schemas .IndexType )
100+ issueIDIndex .AddColumn ("issue_id" )
101+ indices = append (indices , issueIDIndex )
102+
103+ commitIDIndex := schemas .NewIndex ("idx_notification_commit_id" , schemas .IndexType )
104+ commitIDIndex .AddColumn ("commit_id" )
105+ indices = append (indices , commitIDIndex )
106+
107+ updatedByIndex := schemas .NewIndex ("idx_notification_updated_by" , schemas .IndexType )
108+ updatedByIndex .AddColumn ("updated_by" )
109+ indices = append (indices , updatedByIndex )
80110
81111 return indices
82112}
0 commit comments