Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-24 02:36:10 +01:00

Quote table release in sql queries (#27205) (#27219)

Backport of #27205

Fixes #27174

`release` is a reserved keyword in MySql. I can't reproduce the issue on
my setup and we have a test for that code but it seems there can be
setups where it fails.

(cherry picked from commit eae6985b63)
This commit is contained in:
KN4CK3R 2023-09-24 00:48:50 +02:00 committed by Earl Warren
parent 1b1f878204
commit 13423d6eda
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
2 changed files with 6 additions and 6 deletions

View file

@ -342,7 +342,7 @@ func (stats *ActivityStats) FillReleases(repoID int64, fromTime time.Time) error
// Published releases list // Published releases list
sess := releasesForActivityStatement(repoID, fromTime) sess := releasesForActivityStatement(repoID, fromTime)
sess.OrderBy("release.created_unix DESC") sess.OrderBy("`release`.created_unix DESC")
stats.PublishedReleases = make([]*repo_model.Release, 0) stats.PublishedReleases = make([]*repo_model.Release, 0)
if err = sess.Find(&stats.PublishedReleases); err != nil { if err = sess.Find(&stats.PublishedReleases); err != nil {
return err return err
@ -350,7 +350,7 @@ func (stats *ActivityStats) FillReleases(repoID int64, fromTime time.Time) error
// Published releases authors // Published releases authors
sess = releasesForActivityStatement(repoID, fromTime) sess = releasesForActivityStatement(repoID, fromTime)
if _, err = sess.Select("count(distinct release.publisher_id) as `count`").Table("release").Get(&count); err != nil { if _, err = sess.Select("count(distinct `release`.publisher_id) as `count`").Table("release").Get(&count); err != nil {
return err return err
} }
stats.PublishedReleaseAuthorCount = count stats.PublishedReleaseAuthorCount = count
@ -359,7 +359,7 @@ func (stats *ActivityStats) FillReleases(repoID int64, fromTime time.Time) error
} }
func releasesForActivityStatement(repoID int64, fromTime time.Time) *xorm.Session { func releasesForActivityStatement(repoID int64, fromTime time.Time) *xorm.Session {
return db.GetEngine(db.DefaultContext).Where("release.repo_id = ?", repoID). return db.GetEngine(db.DefaultContext).Where("`release`.repo_id = ?", repoID).
And("release.is_draft = ?", false). And("`release`.is_draft = ?", false).
And("release.created_unix >= ?", fromTime.Unix()) And("`release`.created_unix >= ?", fromTime.Unix())
} }

View file

@ -101,7 +101,7 @@ func checkDBConsistency(ctx context.Context, logger log.Logger, autofix bool) er
}, },
// find releases without existing repository // find releases without existing repository
genericOrphanCheck("Orphaned Releases without existing repository", genericOrphanCheck("Orphaned Releases without existing repository",
"release", "repository", "release.repo_id=repository.id"), "release", "repository", "`release`.repo_id=repository.id"),
// find pulls without existing issues // find pulls without existing issues
genericOrphanCheck("Orphaned PullRequests without existing issue", genericOrphanCheck("Orphaned PullRequests without existing issue",
"pull_request", "issue", "pull_request.issue_id=issue.id"), "pull_request", "issue", "pull_request.issue_id=issue.id"),