class ElasticAPM::Normalizers::ActiveRecord::SqlNormalizer

@api private

def initialize(*args)

def initialize(*args)
  super(*args)
  @type = format('db.%s.sql', lookup_adapter || 'unknown').freeze
  @summarizer = SqlSummarizer.new
end

def lookup_adapter

def lookup_adapter
  ::ActiveRecord::Base.connection.adapter_name.downcase
rescue StandardError
  nil
end

def normalize(_transaction, _name, payload)

def normalize(_transaction, _name, payload)
  return :skip if %w[SCHEMA CACHE].include?(payload[:name])
  name = summarize(payload[:sql]) || payload[:name]
  context = Span::Context.new(statement: payload[:sql].to_s)
  [name, @type, context]
end

def summarize(sql)

def summarize(sql)
  @summarizer.summarize(sql)
end