From 91789930bcc9d5796a1b06bdeb1402106c0d18d2 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 14 Dec 2015 02:40:23 -0500 Subject: [PATCH] #2176 fix 500 on /watchers & /stars for pg --- gogs.go | 2 +- models/repo.go | 18 ++++++++++++++---- templates/.VERSION | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gogs.go b/gogs.go index e56fbf414..80f2f4b51 100644 --- a/gogs.go +++ b/gogs.go @@ -18,7 +18,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.8.3.1213" +const APP_VER = "0.8.3.1214" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/repo.go b/models/repo.go index 76e381600..8b6731a72 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1886,8 +1886,13 @@ func GetWatchers(repoID int64) ([]*Watch, error) { // Repository.GetWatchers returns range of users watching given repository. func (repo *Repository) GetWatchers(page int) ([]*User, error) { users := make([]*User, 0, ItemsPerPage) - return users, x.Limit(ItemsPerPage, (page-1)*ItemsPerPage). - Where("repo_id=?", repo.ID).Join("LEFT", "watch", "user.id=watch.user_id").Find(&users) + sess := x.Limit(ItemsPerPage, (page-1)*ItemsPerPage).Where("watch.repo_id=?", repo.ID) + if setting.UsePostgreSQL { + sess = sess.Join("LEFT", "watch", `"user".id=watch.user_id`) + } else { + sess = sess.Join("LEFT", "watch", "user.id=watch.user_id") + } + return users, sess.Find(&users) } func notifyWatchers(e Engine, act *Action) error { @@ -1969,8 +1974,13 @@ func IsStaring(uid, repoId int64) bool { func (repo *Repository) GetStargazers(page int) ([]*User, error) { users := make([]*User, 0, ItemsPerPage) - return users, x.Limit(ItemsPerPage, (page-1)*ItemsPerPage). - Where("repo_id=?", repo.ID).Join("LEFT", "star", "user.id=star.uid").Find(&users) + sess := x.Limit(ItemsPerPage, (page-1)*ItemsPerPage).Where("star.repo_id=?", repo.ID) + if setting.UsePostgreSQL { + sess = sess.Join("LEFT", "star", `"user".id=star.uid`) + } else { + sess = sess.Join("LEFT", "star", "user.id=star.uid") + } + return users, sess.Find(&users) } // ___________ __ diff --git a/templates/.VERSION b/templates/.VERSION index d03366c02..32086d73d 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.8.3.1213 \ No newline at end of file +0.8.3.1214 \ No newline at end of file