class ElasticAPM::Normalizers::ActiveRecord::SqlNormalizer

@api private

def cached_adapter_name(adapter_name)

def cached_adapter_name(adapter_name)
  return UNKNOWN if adapter_name.nil? || adapter_name.empty?
  @adapters[adapter_name] ||
    (@adapters[adapter_name] = adapter_name.downcase)
rescue StandardError
  nil
end

def initialize(*args)

def initialize(*args)
  super
  @summarizer = SqlSummarizer.new
  @adapters = {}
end

def normalize(_transaction, _name, payload)

def normalize(_transaction, _name, payload)
  return :skip if SKIP_NAMES.include?(payload[:name])
  name = summarize(payload[:sql]) || payload[:name]
  context =
    Span::Context.new(db: { statement: payload[:sql], type: 'sql' })
  [name, TYPE, subtype(payload), ACTION, context]
end

def subtype(payload)

def subtype(payload)
  cached_adapter_name(
    payload[:connection] ? payload[:connection].adapter_name :
      ::ActiveRecord::Base.connection_config[:adapter]
  )
end

def summarize(sql)

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