module ActiveRecord::ConnectionAdapters::MySQL::Quoting::ClassMethods

def column_name_matcher

:nodoc:
def column_name_matcher
  /
    \A
    (
      (?:
        # `table_name`.`column_name` | function(one or no argument)
        ((?:\w+\.|`\w+`\.)?(?:\w+|`\w+`) | \w+\((?:|\g<2>)\))
      )
      (?:(?:\s+AS)?\s+(?:\w+|`\w+`))?
    )
    (?:\s*,\s*\g<1>)*
    \z
  /ix
end

def column_name_with_order_matcher

def column_name_with_order_matcher
  /
    \A
    (
      (?:
        # `table_name`.`column_name` | function(one or no argument)
        ((?:\w+\.|`\w+`\.)?(?:\w+|`\w+`) | \w+\((?:|\g<2>)\))
      )
      (?:\s+COLLATE\s+(?:\w+|"\w+"))?
      (?:\s+ASC|\s+DESC)?
    )
    (?:\s*,\s*\g<1>)*
    \z
  /ix
end

def quote_column_name(name)

def quote_column_name(name)
  QUOTED_COLUMN_NAMES[name] ||= "`#{name.to_s.gsub('`', '``')}`".freeze
end

def quote_table_name(name)

def quote_table_name(name)
  QUOTED_TABLE_NAMES[name] ||= "`#{name.to_s.gsub('`', '``').gsub(".", "`.`")}`".freeze
end