aboutsummaryrefslogtreecommitdiffstats
path: root/models/issues/issue.go
diff options
context:
space:
mode:
authorJason Song <i@wolfogre.com>2022-12-23 19:35:43 +0800
committerGitHub <noreply@github.com>2022-12-23 19:35:43 +0800
commit71ca3067bcc6c7c7772d38fc7590505c8c7148ed (patch)
tree9c3719cb257e3976df229128f9f9d33056e3503d /models/issues/issue.go
parent41f0668da818d3a3ae74555bfe3de375448bacf3 (diff)
downloadgitea-71ca3067bcc6c7c7772d38fc7590505c8c7148ed.tar.gz
gitea-71ca3067bcc6c7c7772d38fc7590505c8c7148ed.zip
Check primary keys for all tables and drop ForeignReference (#21721)
Some dbs require that all tables have primary keys, see - #16802 - #21086 We can add a test to keep it from being broken again. Edit: ~Added missing primary key for `ForeignReference`~ Dropped the `ForeignReference` table to satisfy the check, so it closes #21086. More context can be found in comments. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'models/issues/issue.go')
-rw-r--r--models/issues/issue.go60
1 files changed, 5 insertions, 55 deletions
diff --git a/models/issues/issue.go b/models/issues/issue.go
index fc93fcf454..f45e635c0e 100644
--- a/models/issues/issue.go
+++ b/models/issues/issue.go
@@ -9,11 +9,9 @@ import (
"fmt"
"regexp"
"sort"
- "strconv"
"strings"
"code.gitea.io/gitea/models/db"
- "code.gitea.io/gitea/models/foreignreference"
"code.gitea.io/gitea/models/organization"
"code.gitea.io/gitea/models/perm"
access_model "code.gitea.io/gitea/models/perm/access"
@@ -136,12 +134,11 @@ type Issue struct {
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
ClosedUnix timeutil.TimeStamp `xorm:"INDEX"`
- Attachments []*repo_model.Attachment `xorm:"-"`
- Comments []*Comment `xorm:"-"`
- Reactions ReactionList `xorm:"-"`
- TotalTrackedTime int64 `xorm:"-"`
- Assignees []*user_model.User `xorm:"-"`
- ForeignReference *foreignreference.ForeignReference `xorm:"-"`
+ Attachments []*repo_model.Attachment `xorm:"-"`
+ Comments []*Comment `xorm:"-"`
+ Reactions ReactionList `xorm:"-"`
+ TotalTrackedTime int64 `xorm:"-"`
+ Assignees []*user_model.User `xorm:"-"`
// IsLocked limits commenting abilities to users on an issue
// with write access
@@ -321,29 +318,6 @@ func (issue *Issue) loadReactions(ctx context.Context) (err error) {
return nil
}
-func (issue *Issue) loadForeignReference(ctx context.Context) (err error) {
- if issue.ForeignReference != nil {
- return nil
- }
- reference := &foreignreference.ForeignReference{
- RepoID: issue.RepoID,
- LocalIndex: issue.Index,
- Type: foreignreference.TypeIssue,
- }
- has, err := db.GetEngine(ctx).Get(reference)
- if err != nil {
- return err
- } else if !has {
- return foreignreference.ErrForeignIndexNotExist{
- RepoID: issue.RepoID,
- LocalIndex: issue.Index,
- Type: foreignreference.TypeIssue,
- }
- }
- issue.ForeignReference = reference
- return nil
-}
-
// LoadMilestone load milestone of this issue.
func (issue *Issue) LoadMilestone(ctx context.Context) (err error) {
if (issue.Milestone == nil || issue.Milestone.ID != issue.MilestoneID) && issue.MilestoneID > 0 {
@@ -406,10 +380,6 @@ func (issue *Issue) LoadAttributes(ctx context.Context) (err error) {
}
}
- if err = issue.loadForeignReference(ctx); err != nil && !foreignreference.IsErrForeignIndexNotExist(err) {
- return err
- }
-
return issue.loadReactions(ctx)
}
@@ -1097,26 +1067,6 @@ func GetIssueByIndex(repoID, index int64) (*Issue, error) {
return issue, nil
}
-// GetIssueByForeignIndex returns raw issue by foreign ID
-func GetIssueByForeignIndex(ctx context.Context, repoID, foreignIndex int64) (*Issue, error) {
- reference := &foreignreference.ForeignReference{
- RepoID: repoID,
- ForeignIndex: strconv.FormatInt(foreignIndex, 10),
- Type: foreignreference.TypeIssue,
- }
- has, err := db.GetEngine(ctx).Get(reference)
- if err != nil {
- return nil, err
- } else if !has {
- return nil, foreignreference.ErrLocalIndexNotExist{
- RepoID: repoID,
- ForeignIndex: foreignIndex,
- Type: foreignreference.TypeIssue,
- }
- }
- return GetIssueByIndex(repoID, reference.LocalIndex)
-}
-
// GetIssueWithAttrsByIndex returns issue by index in a repository.
func GetIssueWithAttrsByIndex(repoID, index int64) (*Issue, error) {
issue, err := GetIssueByIndex(repoID, index)