提交 a34c10f7 编写于 作者: M Mauricio Linhares

Fixes issue with parsing whitespace content back from database - fixes #13907

上级 9b2a017a
* Parsing PostgreSQL arrays with empty strings now works correctly.
Previously, if you tried to parse `{"1","","2","","3"}` the result
would be `["1","2","3"]`, removing the empty strings from the array,
which would be incorrect. Now it will correctly produce `["1","","2","","3"]`
as the result of parsing the above PostgreSQL array.
Fixes #13907.
*Maurício Linhares*
* Associations now raise `ArgumentError` on name conflicts.
Dangerous association names conflicts include instance or class methods already
......
......@@ -91,8 +91,9 @@ def parse_array_contents(array, string, index)
end
def add_item_to_array(array, current_item, quoted)
if current_item.length == 0
elsif !quoted && current_item == 'NULL'
return if !quoted && current_item.length == 0
if !quoted && current_item == 'NULL'
array.push nil
else
array.push current_item
......
......@@ -93,6 +93,18 @@ def test_multi_dimensional_with_strings
assert_cycle(:tags, [[['1'], ['2']], [['2'], ['3']]])
end
def test_with_empty_strings
assert_cycle(:tags, [ '1', '2', '', '4', '', '5' ])
end
def test_with_multi_dimensional_empty_strings
assert_cycle(:tags, [[['1', '2'], ['', '4'], ['', '5']]])
end
def test_with_arbitrary_whitespace
assert_cycle(:tags, [[['1', '2'], [' ', '4'], [' ', '5']]])
end
def test_multi_dimensional_with_integers
assert_cycle(:ratings, [[[1], [7]], [[8], [10]]])
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册