summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Stark <stark@gitlab.com>2018-02-09 16:16:32 +0100
committerGreg Stark <stark@gitlab.com>2018-02-09 16:16:32 +0100
commitd21f41307a531636f5f54c8c3d055cbbf1fa9b21 (patch)
tree7154e45d22f609769980d203fea83691eb96a73b
parent7b048631c6f53dd02e5c3b7175c30968f9d08db6 (diff)
downloadgitlab-ce-d21f41307a531636f5f54c8c3d055cbbf1fa9b21.tar.gz
Revert to old code style where branches of the union do not have extra where clauses on them
-rw-r--r--app/models/ci/build.rb30
1 files changed, 12 insertions, 18 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index ba8d9944199..3321d98e237 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -56,33 +56,27 @@ module Ci
# replaced with just the new storage to avoid the extra work.
scope :with_artifacts, ->() do
- old = where(%q[artifacts_file <> ''])
- new = where(%q[(artifacts_file IS NULL OR artifacts_file = '') AND EXISTS (?)],
- Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id'))
+ old = Ci::Build.select(:id).where(%q[artifacts_file <> ''])
+ new = Ci::Build.select(:id).where(%q[(artifacts_file IS NULL OR artifacts_file = '') AND EXISTS (?)],
+ Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id'))
union = Gitlab::SQL::Union.new([old, new], remove_duplicates: false)
- # XXX
- #Ci::Build.from("(#{union.to_sql}) #{Ci::Build.table_name}")
- where(%Q[ci_builds.id IN (SELECT ci_builds.id FROM (#{union.to_sql}))])
+ where(%Q[ci_builds.id IN (#{union.to_sql})])
end
scope :with_artifacts_not_expired, ->() do
- old = where(%q[artifacts_file <> '' AND (artifacts_expire_at IS NULL OR artifacts_expire_at > ?)], Time.now)
- new = where(%q[(artifacts_file IS NULL OR artifacts_file = '') AND EXISTS (?)],
- Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id AND (expire_at IS NULL OR expire_at > ?)', Time.now))
+ old = Ci::Build.select(:id).where(%q[artifacts_file <> '' AND (artifacts_expire_at IS NULL OR artifacts_expire_at > ?)], Time.now)
+ new = Ci::Build.select(:id).where(%q[(artifacts_file IS NULL OR artifacts_file = '') AND EXISTS (?)],
+ Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id AND (expire_at IS NULL OR expire_at > ?)', Time.now))
union = Gitlab::SQL::Union.new([old, new], remove_duplicates: false)
- # XXX
- #Ci::Build.from("(#{union.to_sql}) #{Ci::Build.table_name}")
- where(%Q[ci_builds.id IN (SELECT ci_builds.id FROM (#{union.to_sql}))])
+ where(%Q[ci_builds.id IN (#{union.to_sql})])
end
scope :with_expired_artifacts, ->() do
- old = where(%q[artifacts_file <> '' AND artifacts_expire_at < ?], Time.now)
- new = where(%q[(artifacts_file IS NULL OR artifacts_file = '') AND EXISTS (?)],
- Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id AND expire_at < ?', Time.now))
+ old = Ci::Build.select(:id).where(%q[artifacts_file <> '' AND artifacts_expire_at < ?], Time.now)
+ new = Ci::Build.select(:id).where(%q[(artifacts_file IS NULL OR artifacts_file = '') AND EXISTS (?)],
+ Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id AND expire_at < ?', Time.now))
union = Gitlab::SQL::Union.new([old, new], remove_duplicates: false)
- # XXX
- #Ci::Build.from("(#{union.to_sql}) #{Ci::Build.table_name}")
- where(%Q[ci_builds.id IN (SELECT ci_builds.id FROM (#{union.to_sql}))])
+ where(%Q[ci_builds.id IN (#{union.to_sql})])
end
scope :last_month, ->() { where('created_at > ?', Date.today - 1.month) }