diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-18 04:00:33 -0200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-19 14:58:27 -0200 |
commit | f99744d00de10094d6e483776313c52d86437a9d (patch) | |
tree | d21b15d49c18f6f33ae754ca4f42b4a39f88e79c /app/models/label.rb | |
parent | 4c9241075dc1b2f1cda5648cf9ad1f553db3d03b (diff) | |
download | gitlab-ce-f99744d00de10094d6e483776313c52d86437a9d.tar.gz |
Use join instead of subquery on Label.unprioritized scope
Diffstat (limited to 'app/models/label.rb')
-rw-r--r-- | app/models/label.rb | 9 |
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 |