Allow spaces in postgres table names

Fixes issue where "user post" is misinterpreted as "\"user\".\"post\""
when quoting table names with the postgres adapter.
This commit is contained in:
Gannon McGibbon 2018-11-28 16:15:21 -05:00
parent 9c6e362a63
commit 03fadebe0e
3 changed files with 12 additions and 1 deletions

@ -1,3 +1,9 @@
* Allow spaces in postgres table names.
Fixes issue where "user post" is misinterpreted as "\"user\".\"post\"" when quoting table names with the postgres adapter.
*Gannon McGibbon*
* Cached columns_hash fields should be excluded from ResultSet#column_types
PR #34528 addresses the inconsistent behaviour when attribute is defined for an ignored column. The following test

@ -68,7 +68,7 @@ module Utils # :nodoc:
# * <tt>"schema_name".table_name</tt>
# * <tt>"schema.name"."table name"</tt>
def extract_schema_qualified_name(string)
schema, table = string.scan(/[^".\s]+|"[^"]*"/)
schema, table = string.scan(/[^".]+|"[^"]*"/)
if table.nil?
table = schema
schema = nil

@ -39,6 +39,11 @@ def test_quote_bit_string
type = OID::Bit.new
assert_nil @conn.quote(type.serialize(value))
end
def test_quote_table_name_with_spaces
value = "user posts"
assert_equal "\"user posts\"", @conn.quote_table_name(value)
end
end
end
end