diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-01-18 22:58:54 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-18 22:58:54 +0900 |
commit | ff3d1a42d5800c999be7351b72317cefb5961ee8 (patch) | |
tree | aebed0f35655dd073c8d7e271c56726ef171d3fb /activerecord/test/cases/relation | |
parent | 92cc996a09b7ffd5908c3c6771484fdf82e8729a (diff) | |
parent | c196ca72a0dfbea5f1730f830ea20a9e02a3c737 (diff) | |
download | rails-ff3d1a42d5800c999be7351b72317cefb5961ee8.tar.gz rails-ff3d1a42d5800c999be7351b72317cefb5961ee8.tar.bz2 rails-ff3d1a42d5800c999be7351b72317cefb5961ee8.zip |
Merge pull request #30000 from kamipo/all_of_queries_should_return_correct_result
All of queries should return correct result even if including large number
Diffstat (limited to 'activerecord/test/cases/relation')
-rw-r--r-- | activerecord/test/cases/relation/or_test.rb | 5 | ||||
-rw-r--r-- | activerecord/test/cases/relation/where_test.rb | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/test/cases/relation/or_test.rb b/activerecord/test/cases/relation/or_test.rb index 065819e0f1..8623867864 100644 --- a/activerecord/test/cases/relation/or_test.rb +++ b/activerecord/test/cases/relation/or_test.rb @@ -30,6 +30,11 @@ module ActiveRecord assert_equal expected, Post.where("id = 1").or(Post.none).to_a end + def test_or_with_large_number + expected = Post.where("id = 1 or id = 9223372036854775808").to_a + assert_equal expected, Post.where(id: 1).or(Post.where(id: 9223372036854775808)).to_a + end + def test_or_with_bind_params assert_equal Post.find([1, 2]).sort_by(&:id), Post.where(id: 1).or(Post.where(id: 2)).sort_by(&:id) end diff --git a/activerecord/test/cases/relation/where_test.rb b/activerecord/test/cases/relation/where_test.rb index 99797528b2..d49ed092b2 100644 --- a/activerecord/test/cases/relation/where_test.rb +++ b/activerecord/test/cases/relation/where_test.rb @@ -359,6 +359,16 @@ module ActiveRecord assert_equal author, Author.where(params.permit!).first end + def test_where_with_large_number + assert_equal [authors(:bob)], Author.where(id: [3, 9223372036854775808]) + assert_equal [authors(:bob)], Author.where(id: 3..9223372036854775808) + end + + def test_to_sql_with_large_number + assert_equal [authors(:bob)], Author.find_by_sql(Author.where(id: [3, 9223372036854775808]).to_sql) + assert_equal [authors(:bob)], Author.find_by_sql(Author.where(id: 3..9223372036854775808).to_sql) + end + def test_where_with_unsupported_arguments assert_raises(ArgumentError) { Author.where(42) } end |