Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/packages/tag.rb')
-rw-r--r--app/models/packages/tag.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/models/packages/tag.rb b/app/models/packages/tag.rb
index 0df64bfba54..95cf312c174 100644
--- a/app/models/packages/tag.rb
+++ b/app/models/packages/tag.rb
@@ -19,6 +19,17 @@ class Packages::Tag < ApplicationRecord
.limit(FOR_PACKAGES_TAGS_LIMIT)
end
+ def self.for_package_ids_with_distinct_names(package_ids)
+ inner_query = select('DISTINCT ON (name) *').order(:name).for_package_ids(package_ids)
+
+ cte = Gitlab::SQL::CTE.new(:distinct_names_cte, inner_query)
+ cte_alias = cte.table.alias(table_name)
+
+ with(cte.to_arel)
+ .from(cte_alias)
+ .order(updated_at: :desc)
+ end
+
def ensure_project_id
self.project_id ||= package.project_id
end