Method: NewRelic::Agent::Database::ExplainPlanHelpers#process_explain_results_postgres

Defined in:
lib/new_relic/agent/database/explain_plan_helpers.rb

#process_explain_results_postgres(results) ⇒ Object

[View source]

69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/new_relic/agent/database/explain_plan_helpers.rb', line 69

def process_explain_results_postgres(results)
  if defined?(::ActiveRecord::Result) && results.is_a?(::ActiveRecord::Result)
    query_plan_string = results.rows.join("\n")
  elsif results.is_a?(String)
    query_plan_string = results
  else
    lines = []
    results.each { |row| lines << row[QUERY_PLAN] }
    query_plan_string = lines.join("\n")
  end

  unless NewRelic::Agent::Database.record_sql_method == :raw
    query_plan_string = NewRelic::Agent::Database::PostgresExplainObfuscator.obfuscate(query_plan_string)
  end
  values = query_plan_string.split("\n").map { |line| [line] }

  [[QUERY_PLAN], values]
end