summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-10-18 04:00:33 -0200
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-10-19 14:58:27 -0200
commitf99744d00de10094d6e483776313c52d86437a9d (patch)
treed21b15d49c18f6f33ae754ca4f42b4a39f88e79c
parent4c9241075dc1b2f1cda5648cf9ad1f553db3d03b (diff)
downloadgitlab-ce-f99744d00de10094d6e483776313c52d86437a9d.tar.gz
Use join instead of subquery on Label.unprioritized scope
-rw-r--r--app/models/label.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/app/models/label.rb b/app/models/label.rb
index ae07e8f60e1..149fd98ecb3 100644
--- a/app/models/label.rb
+++ b/app/models/label.rb
@@ -39,7 +39,14 @@ class Label < ActiveRecord::Base
end
def self.unprioritized(project)
- where.not(id: prioritized(project).select(:id))
+ labels = Label.arel_table
+ priorities = LabelPriority.arel_table
+
+ label_priorities = labels.join(priorities, Arel::Nodes::OuterJoin).
+ on(labels[:id].eq(priorities[:label_id]).and(priorities[:project_id].eq(project.id))).
+ join_sources
+
+ joins(label_priorities).where(priorities[:priority].eq(nil))
end
def self.left_join_priorities