aboutsummaryrefslogtreecommitdiffstats
path: root/models/packages/package_version.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/packages/package_version.go')
-rw-r--r--models/packages/package_version.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/models/packages/package_version.go b/models/packages/package_version.go
index a2a8a45d8f..928f9d47d6 100644
--- a/models/packages/package_version.go
+++ b/models/packages/package_version.go
@@ -302,9 +302,14 @@ func SearchLatestVersions(ctx context.Context, opts *PackageSearchOptions) ([]*P
cond := opts.toConds().
And(builder.Expr("pv2.id IS NULL"))
+ joinCond := builder.Expr("package_version.package_id = pv2.package_id AND (package_version.created_unix < pv2.created_unix OR (package_version.created_unix = pv2.created_unix AND package_version.id < pv2.id))")
+ if !opts.IsInternal.IsNone() {
+ joinCond = joinCond.And(builder.Eq{"pv2.is_internal": opts.IsInternal.IsTrue()})
+ }
+
sess := db.GetEngine(ctx).
Table("package_version").
- Join("LEFT", "package_version pv2", "package_version.package_id = pv2.package_id AND (package_version.created_unix < pv2.created_unix OR (package_version.created_unix = pv2.created_unix AND package_version.id < pv2.id))").
+ Join("LEFT", "package_version pv2", joinCond).
Join("INNER", "package", "package.id = package_version.package_id").
Where(cond)