module ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting::ClassMethods

def column_name_matcher

:nodoc:
def column_name_matcher
  /
    \A
    (
      (?:
        # "schema_name"."table_name"."column_name"::type_name | function(one or no argument)::type_name
        ((?:\w+\.|"\w+"\.){,2}(?:\w+|"\w+")(?:::\w+)? | \w+\((?:|\g<2>)\)(?:::\w+)?)
      )
      (?:(?:\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
    (
      (?:
        # "schema_name"."table_name"."column_name"::type_name | function(one or no argument)::type_name
        ((?:\w+\.|"\w+"\.){,2}(?:\w+|"\w+")(?:::\w+)? | \w+\((?:|\g<2>)\)(?:::\w+)?)
      )
      (?:\s+COLLATE\s+"\w+")?
      (?:\s+ASC|\s+DESC)?
      (?:\s+NULLS\s+(?:FIRST|LAST))?
    )
    (?:\s*,\s*\g<1>)*
    \z
  /ix
end

def quote_column_name(name) # :nodoc:

:nodoc:
Quotes column names for use in SQL queries.
def quote_column_name(name) # :nodoc:
  QUOTED_COLUMN_NAMES[name] ||= PG::Connection.quote_ident(name.to_s).freeze
end

def quote_table_name(name) # :nodoc:

:nodoc:
- "schema.name"."table.name"
- "schema.name".table_name
- schema_name."table.name"
- schema_name.table_name
- "table.name"
- table_name

Checks the following cases:
def quote_table_name(name) # :nodoc:
  QUOTED_TABLE_NAMES[name] ||= Utils.extract_schema_qualified_name(name.to_s).quoted.freeze
end