summaryrefslogtreecommitdiff
path: root/lib/gitlab/database/count.rb
diff options
context:
space:
mode:
authorAndreas Brandl <abrandl@gitlab.com>2018-10-28 16:08:37 +0100
committerAndreas Brandl <abrandl@gitlab.com>2018-12-03 21:26:48 +0100
commitf2ec9d2d34ebd0650458896af354386c4e73ef26 (patch)
tree7cbb796bf12aa1268181352a3ff3844706718663 /lib/gitlab/database/count.rb
parentf3a931517735268487dfee9a129280dc06835fad (diff)
downloadgitlab-ce-f2ec9d2d34ebd0650458896af354386c4e73ef26.tar.gz
Add ExactCountStrategy.
Diffstat (limited to 'lib/gitlab/database/count.rb')
-rw-r--r--lib/gitlab/database/count.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/gitlab/database/count.rb b/lib/gitlab/database/count.rb
index fc61ee48832..7b7fd3148fa 100644
--- a/lib/gitlab/database/count.rb
+++ b/lib/gitlab/database/count.rb
@@ -57,6 +57,19 @@ module Gitlab
ReltuplesCountStrategy.new(table_names).count
end
+ class ExactCountStrategy
+ attr_reader :models
+ def initialize(models)
+ @models = models
+ end
+
+ def count
+ models.each_with_object({}) do |model, data|
+ data[model] = model.count
+ end
+ end
+ end
+
class ReltuplesCountStrategy
attr_reader :table_names