• S
    Use a bind param for `LIMIT` and `OFFSET` · af3dc42e
    Sean Griffin 提交于
    We currently generate an unbounded number of prepared statements when
    `limit` or `offset` are called with a dynamic argument. This changes
    `LIMIT` and `OFFSET` to use bind params, eliminating the problem.
    
    `Type::Value#hash` needed to be implemented, as it turns out we busted
    the query cache if the type object used wasn't exactly the same object.
    
    This drops support for passing an `Arel::Nodes::SqlLiteral` to `limit`.
    Doing this relied on AR internals, and was never officially supported
    usage.
    
    Fixes #22250.
    af3dc42e
query_methods.rb 39.8 KB