• R
    All of queries should return correct result even if including large number · 31ffbf8d
    Ryuta Kamizono 提交于
    Currently several queries cannot return correct result due to incorrect
    `RangeError` handling.
    
    First example:
    
    ```ruby
    assert_equal true, Topic.where(id: [1, 9223372036854775808]).exists?
    assert_equal true, Topic.where.not(id: 9223372036854775808).exists?
    ```
    
    The first example is obviously to be true, but currently it returns
    false.
    
    Second example:
    
    ```ruby
    assert_equal topics(:first), Topic.where(id: 1..9223372036854775808).find(1)
    ```
    
    The second example also should return the object, but currently it
    raises `RecordNotFound`.
    
    It can be seen from the examples, the queries including large number
    assuming empty result is not always correct.
    
    Therefore, This change handles `RangeError` to generate executable SQL
    instead of raising `RangeError` to users to always return correct
    result. By this change, it is no longer raised `RangeError` to users.
    31ffbf8d
predications.rb 6.0 KB