class AwesomeExplain::Insights::SqlPlansInsights

Attributes

mutex[R]
plans_stats[RW]
queries[RW]

Public Class Methods

add(plan_stats) click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 38
def self.add(plan_stats)
  instance.add(plan_stats)
end
add_query(query) click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 42
def self.add_query(query)
  instance.add_query(query)
end
clear() click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 54
def self.clear
  instance.clear
end
new() click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 8
def initialize
  @plans_stats = []
  @queries = []
  @mutex = Mutex.new
end
plans_stats() click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 46
def self.plans_stats
  instance.plans_stats
end
queries() click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 50
def self.queries
  instance.queries
end

Public Instance Methods

add(plan_stats) click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 14
def add(plan_stats)
  with_mutex { @plans_stats << plan_stats }
end
add_query(query) click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 18
def add_query(query)
  with_mutex {
    query = Niceql::Prettifier.prettify_sql query
    @queries << query
  }
end
clear() click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 33
def clear
  plans_stats.clear
  queries.clear
end

Private Instance Methods

with_mutex() { || ... } click to toggle source
# File lib/awesome_explain/insights/sql_plans_insights.rb, line 60
def with_mutex
  @mutex.synchronize { yield }
end