Welcome to mirror list, hosted at ThFree Co, Russian Federation.

query_recorder.rb « support « spec « activerecord-gitlab « gems - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5129bae92407ade16d72c37eb0f53ee7fdb06acb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# frozen_string_literal: true

class QueryRecorder
  attr_reader :log

  def initialize(&block)
    @log = []

    ActiveRecord::Base.connection.unprepared_statement do
      ActiveSupport::Notifications.subscribed(method(:callback), 'sql.active_record', &block)
    end
  end

  def callback(_name, _start, _finish, _message_id, values)
    @log << values[:sql]
  end

  def self.log(&block)
    new(&block).log
  end
end