71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/sql_optimizer/analyze.rb', line 71
def log_info_with_trace(event)
log_info_without_trace(event)
return if event.payload[:name].nil? ||
event.payload[:name] == 'SCHEMA' ||
event.payload[:name].include?('SchemaMigration') ||
%w[BEGIN COMMIT ROLLBACK].include?(event.payload[:sql].to_s) ||
!ActiveRecord::Base.connection.table_exists?(QueryLog.table_name) ||
event.payload[:sql].include?('query_logs')
logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil
query_logs = QueryLog.last(2)
if query_logs.last.present? && query_logs.last.query == event.payload[:sql]
query_logs.last.update(follow_id: query_logs.first.id,
n_plus_one_size: query_logs.last.n_plus_one_size + 1)
else
QueryLog.create(
query: event.payload[:sql],
source: event.payload[:name],
duration: event.duration.round(3)
)
end
ActiveRecord::Base.logger = logger
end
|