From ade6d4a20fed2f84cf98830c9691b826254bd31f Mon Sep 17 00:00:00 2001
From: Lunny Xiao <xiaolunwen@gmail.com>
Date: Sat, 12 Nov 2016 01:31:37 +0800
Subject: [PATCH] optimization on database IN

---
 models/org.go | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/models/org.go b/models/org.go
index 1caf241eaa..7b251b2020 100644
--- a/models/org.go
+++ b/models/org.go
@@ -10,9 +10,8 @@ import (
 	"os"
 	"strings"
 
+	"github.com/go-xorm/builder"
 	"github.com/go-xorm/xorm"
-
-	"code.gitea.io/gitea/modules/base"
 )
 
 var (
@@ -540,7 +539,7 @@ func (org *User) GetUserRepositories(userID int64, page, pageSize int) ([]*Repos
 		Select("`repository`.*").
 		Join("INNER", "team_repo", "`team_repo`.repo_id=`repository`.id").
 		Where("(`repository`.owner_id=? AND `repository`.is_private=?)", org.ID, false).
-		Or("team_repo.team_id IN (?)", strings.Join(base.Int64sToStrings(teamIDs), ",")).
+		Or(builder.In("team_repo.team_id", teamIDs)).
 		GroupBy("`repository`.id").
 		OrderBy("updated_unix DESC").
 		Limit(pageSize, (page-1)*pageSize).
@@ -551,7 +550,7 @@ func (org *User) GetUserRepositories(userID int64, page, pageSize int) ([]*Repos
 	repoCount, err := x.
 		Join("INNER", "team_repo", "`team_repo`.repo_id=`repository`.id").
 		Where("(`repository`.owner_id=? AND `repository`.is_private=?)", org.ID, false).
-		Or("team_repo.team_id IN (?)", strings.Join(base.Int64sToStrings(teamIDs), ",")).
+		Or(builder.In("team_repo.team_id", teamIDs)).
 		GroupBy("`repository`.id").
 		Count(&Repository{})
 	if err != nil {
@@ -577,7 +576,7 @@ func (org *User) GetUserMirrorRepositories(userID int64) ([]*Repository, error)
 		Select("`repository`.*").
 		Join("INNER", "team_repo", "`team_repo`.repo_id=`repository`.id AND `repository`.is_mirror=?", true).
 		Where("(`repository`.owner_id=? AND `repository`.is_private=?)", org.ID, false).
-		Or("team_repo.team_id IN (?)", strings.Join(base.Int64sToStrings(teamIDs), ",")).
+		Or(builder.In("team_repo.team_id", teamIDs)).
 		GroupBy("`repository`.id").
 		OrderBy("updated_unix DESC").
 		Find(&repos)