mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add a new table issue_index to store the max issue index so that issue could be deleted with no duplicated index (#15599)
* Add a new table issue_index to store the max issue index so that issue could be deleted with no duplicated index * Fix pull index * Add tests for concurrent creating issues * Fix lint * Fix tests * Fix postgres test * Add test for migration v180 * Rename wrong test file name Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		@@ -125,12 +125,27 @@ func TestXRef_ResolveCrossReferences(t *testing.T) {
 | 
			
		||||
func testCreateIssue(t *testing.T, repo, doer int64, title, content string, ispull bool) *Issue {
 | 
			
		||||
	r := AssertExistsAndLoadBean(t, &Repository{ID: repo}).(*Repository)
 | 
			
		||||
	d := AssertExistsAndLoadBean(t, &User{ID: doer}).(*User)
 | 
			
		||||
	i := &Issue{RepoID: r.ID, PosterID: d.ID, Poster: d, Title: title, Content: content, IsPull: ispull}
 | 
			
		||||
 | 
			
		||||
	idx, err := GetNextResourceIndex("issue_index", r.ID)
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	i := &Issue{
 | 
			
		||||
		RepoID:   r.ID,
 | 
			
		||||
		PosterID: d.ID,
 | 
			
		||||
		Poster:   d,
 | 
			
		||||
		Title:    title,
 | 
			
		||||
		Content:  content,
 | 
			
		||||
		IsPull:   ispull,
 | 
			
		||||
		Index:    idx,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
 | 
			
		||||
	assert.NoError(t, sess.Begin())
 | 
			
		||||
	_, err := sess.SetExpr("`index`", "coalesce(MAX(`index`),0)+1").Where("repo_id=?", repo).Insert(i)
 | 
			
		||||
	err = newIssue(sess, d, NewIssueOptions{
 | 
			
		||||
		Repo:  r,
 | 
			
		||||
		Issue: i,
 | 
			
		||||
	})
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	i, err = getIssueByID(sess, i.ID)
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user