Skip to content

Commit 697213b

Browse files
authored
Add primary_key to issue_index (#16813)
Make the group_id a primary key in issue_index. This already has an unique index and therefore is a good candidate for becoming a primary key. This PR also changes all other uses of this table to add the group_id as the primary key. Fix #16802 Signed-off-by: Andrew Thornton <art27@cantab.net>
1 parent e891d68 commit 697213b

File tree

5 files changed

+25
-5
lines changed

5 files changed

+25
-5
lines changed

models/index.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
// ResourceIndex represents a resource index which could be used as issue/release and others
1515
// We can create different tables i.e. issue_index, release_index and etc.
1616
type ResourceIndex struct {
17-
GroupID int64 `xorm:"unique"`
17+
GroupID int64 `xorm:"pk"`
1818
MaxIndex int64 `xorm:"index"`
1919
}
2020

models/migrations/migrations.go

+2
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,8 @@ var migrations = []Migration{
336336
NewMigration("Add agit flow pull request support", addAgitFlowPullRequest),
337337
// v191 -> v192
338338
NewMigration("Alter issue/comment table TEXT fields to LONGTEXT", alterIssueAndCommentTextFieldsToLongText),
339+
// v192 -> v193
340+
NewMigration("RecreateIssueResourceIndexTable to have a primary key instead of an unique index", recreateIssueResourceIndexTable),
339341
}
340342

341343
// GetCurrentDBVersion returns the current db version

models/migrations/v182.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010

1111
func addIssueResourceIndexTable(x *xorm.Engine) error {
1212
type ResourceIndex struct {
13-
GroupID int64 `xorm:"index unique(s)"`
14-
MaxIndex int64 `xorm:"index unique(s)"`
13+
GroupID int64 `xorm:"pk"`
14+
MaxIndex int64 `xorm:"index"`
1515
}
1616

1717
sess := x.NewSession()

models/migrations/v182_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ func Test_addIssueResourceIndexTable(t *testing.T) {
3333
}
3434

3535
type ResourceIndex struct {
36-
GroupID int64 `xorm:"index unique(s)"`
37-
MaxIndex int64 `xorm:"index unique(s)"`
36+
GroupID int64 `xorm:"pk"`
37+
MaxIndex int64 `xorm:"index"`
3838
}
3939

4040
var start = 0

models/migrations/v192.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright 2021 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package migrations
6+
7+
import (
8+
"xorm.io/xorm"
9+
)
10+
11+
func recreateIssueResourceIndexTable(x *xorm.Engine) error {
12+
type IssueIndex struct {
13+
GroupID int64 `xorm:"pk"`
14+
MaxIndex int64 `xorm:"index"`
15+
}
16+
17+
return RecreateTables(new(IssueIndex))(x)
18+
}

0 commit comments

Comments
 (0)