Module: ActiveRecord::ConnectionAdapters::Redshift::Quoting::ClassMethods

Defined in:
lib/active_record/connection_adapters/redshift_7_2/quoting.rb,
lib/active_record/connection_adapters/redshift_8_0/quoting.rb

Constant Summary collapse

QUOTED_COLUMN_NAMES =

:nodoc:

Concurrent::Map.new
QUOTED_TABLE_NAMES =

:nodoc:

Concurrent::Map.new

Instance Method Summary collapse

Instance Method Details

#column_name_matcherObject



30
31
32
# File 'lib/active_record/connection_adapters/redshift_7_2/quoting.rb', line 30

def column_name_matcher
  COLUMN_NAME
end

#column_name_with_order_matcherObject



34
35
36
# File 'lib/active_record/connection_adapters/redshift_7_2/quoting.rb', line 34

def column_name_with_order_matcher
  COLUMN_NAME_WITH_ORDER
end

#quote_column_name(name) ⇒ Object

Quotes column names for use in SQL queries.



26
27
28
# File 'lib/active_record/connection_adapters/redshift_7_2/quoting.rb', line 26

def quote_column_name(name) # :nodoc:
  QUOTED_COLUMN_NAMES[name] ||= PG::Connection.quote_ident(name.to_s).freeze
end

#quote_table_name(name) ⇒ Object

Checks the following cases:

  • table_name

  • “table.name”

  • schema_name.table_name

  • schema_name.“table.name”

  • “schema.name”.table_name

  • “schema.name”.“table.name”



21
22
23
# File 'lib/active_record/connection_adapters/redshift_7_2/quoting.rb', line 21

def quote_table_name(name)
  QUOTED_TABLE_NAMES[name] ||= Utils.extract_schema_qualified_name(name.to_s).quoted.freeze
end