Merge pull request #50809 from Shopify/freeze-cached-strings
Freeze and dedup `quote_column_name` and `quote_table_name` caches
This commit is contained in:
commit
2ddbca3e6a
@ -30,11 +30,11 @@ def cast_bound_value(value)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def quote_column_name(name)
|
def quote_column_name(name)
|
||||||
QUOTED_COLUMN_NAMES[name] ||= "`#{super.gsub('`', '``')}`"
|
QUOTED_COLUMN_NAMES[name] ||= "`#{super.gsub('`', '``')}`".freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
def quote_table_name(name)
|
def quote_table_name(name)
|
||||||
QUOTED_TABLE_NAMES[name] ||= super.gsub(".", "`.`").freeze
|
QUOTED_TABLE_NAMES[name] ||= -super.gsub(".", "`.`").freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
def unquoted_true
|
def unquoted_true
|
||||||
|
@ -86,12 +86,7 @@ def quote_string(s) # :nodoc:
|
|||||||
# - "schema.name".table_name
|
# - "schema.name".table_name
|
||||||
# - "schema.name"."table.name"
|
# - "schema.name"."table.name"
|
||||||
def quote_table_name(name) # :nodoc:
|
def quote_table_name(name) # :nodoc:
|
||||||
QUOTED_TABLE_NAMES[name] ||= Utils.extract_schema_qualified_name(name.to_s).quoted.freeze
|
QUOTED_TABLE_NAMES[name] ||= -Utils.extract_schema_qualified_name(name.to_s).quoted.freeze
|
||||||
end
|
|
||||||
|
|
||||||
# Quotes schema names for use in SQL queries.
|
|
||||||
def quote_schema_name(name)
|
|
||||||
PG::Connection.quote_ident(name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def quote_table_name_for_assignment(table, attr)
|
def quote_table_name_for_assignment(table, attr)
|
||||||
@ -103,6 +98,9 @@ def quote_column_name(name) # :nodoc:
|
|||||||
QUOTED_COLUMN_NAMES[name] ||= PG::Connection.quote_ident(super).freeze
|
QUOTED_COLUMN_NAMES[name] ||= PG::Connection.quote_ident(super).freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Quotes schema names for use in SQL queries.
|
||||||
|
alias_method :quote_schema_name, :quote_column_name
|
||||||
|
|
||||||
# Quote date/time values for use in SQL input.
|
# Quote date/time values for use in SQL input.
|
||||||
def quoted_date(value) # :nodoc:
|
def quoted_date(value) # :nodoc:
|
||||||
if value.year <= 0
|
if value.year <= 0
|
||||||
|
@ -16,11 +16,11 @@ def quote_table_name_for_assignment(table, attr)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def quote_table_name(name)
|
def quote_table_name(name)
|
||||||
QUOTED_TABLE_NAMES[name] ||= super.gsub(".", "\".\"").freeze
|
QUOTED_TABLE_NAMES[name] ||= -super.gsub(".", "\".\"").freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
def quote_column_name(name)
|
def quote_column_name(name)
|
||||||
QUOTED_COLUMN_NAMES[name] ||= %Q("#{super.gsub('"', '""')}")
|
QUOTED_COLUMN_NAMES[name] ||= %Q("#{super.gsub('"', '""')}").freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
def quoted_time(value)
|
def quoted_time(value)
|
||||||
|
Loading…
Reference in New Issue
Block a user