Commit 3645e684 authored by Yorick Peterse's avatar Yorick Peterse

Merge branch '23106-events-default-scope-results-in-a-slow-query' into 'master'

Optimize Event queries by removing default order

See merge request !7130
parents 05f6736d 0badbef8
...@@ -28,6 +28,7 @@ Please view this file on the master branch, on stable branches it's out of date. ...@@ -28,6 +28,7 @@ Please view this file on the master branch, on stable branches it's out of date.
- Fix typo in framework css class. !7086 (Daniel Voogsgerd) - Fix typo in framework css class. !7086 (Daniel Voogsgerd)
- New issue board list dropdown stays open after adding a new list - New issue board list dropdown stays open after adding a new list
- Fix: Backup restore doesn't clear cache - Fix: Backup restore doesn't clear cache
- Optimize Event queries by removing default order
- API: Fix project deploy keys 400 and 500 errors when adding an existing key. !6784 (Joshua Welsh) - API: Fix project deploy keys 400 and 500 errors when adding an existing key. !6784 (Joshua Welsh)
- Add job for removal of unreferenced LFS objects from both the database and the filesystem (Frank Groeneveld) - Add job for removal of unreferenced LFS objects from both the database and the filesystem (Frank Groeneveld)
- Replace jquery.cookie plugin with js.cookie !7085 - Replace jquery.cookie plugin with js.cookie !7085
......
class Event < ActiveRecord::Base class Event < ActiveRecord::Base
include Sortable include Sortable
default_scope { where.not(author_id: nil) } default_scope { reorder(nil).where.not(author_id: nil) }
CREATED = 1 CREATED = 1
UPDATED = 2 UPDATED = 2
......
...@@ -20,7 +20,7 @@ describe Projects::MilestonesController do ...@@ -20,7 +20,7 @@ describe Projects::MilestonesController do
delete :destroy, namespace_id: project.namespace.id, project_id: project.id, id: milestone.iid, format: :js delete :destroy, namespace_id: project.namespace.id, project_id: project.id, id: milestone.iid, format: :js
expect(response).to be_success expect(response).to be_success
expect(Event.first.action).to eq(Event::DESTROYED) expect(Event.recent.first.action).to eq(Event::DESTROYED)
expect { Milestone.find(milestone.id) }.to raise_exception(ActiveRecord::RecordNotFound) expect { Milestone.find(milestone.id) }.to raise_exception(ActiveRecord::RecordNotFound)
issue.reload issue.reload
......
...@@ -57,12 +57,12 @@ describe ProjectMember, models: true do ...@@ -57,12 +57,12 @@ describe ProjectMember, models: true do
it "creates an expired event when left due to expiry" do it "creates an expired event when left due to expiry" do
expired = create(:project_member, project: project, expires_at: Time.now - 6.days) expired = create(:project_member, project: project, expires_at: Time.now - 6.days)
expired.destroy expired.destroy
expect(Event.first.action).to eq(Event::EXPIRED) expect(Event.recent.first.action).to eq(Event::EXPIRED)
end end
it "creates a left event when left due to leave" do it "creates a left event when left due to leave" do
master.destroy master.destroy
expect(Event.first.action).to eq(Event::LEFT) expect(Event.recent.first.action).to eq(Event::LEFT)
end end
it "destroys itself and delete associated todos" do it "destroys itself and delete associated todos" do
......
...@@ -18,7 +18,7 @@ describe Milestones::CloseService, services: true do ...@@ -18,7 +18,7 @@ describe Milestones::CloseService, services: true do
it { expect(milestone).to be_closed } it { expect(milestone).to be_closed }
describe :event do describe :event do
let(:event) { Event.first } let(:event) { Event.recent.first }
it { expect(event.milestone).to be_truthy } it { expect(event.milestone).to be_truthy }
it { expect(event.target).to eq(milestone) } it { expect(event.target).to eq(milestone) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment