1. 07 1月, 2018 2 次提交
  2. 28 11月, 2017 1 次提交
  3. 26 11月, 2017 1 次提交
  4. 14 11月, 2017 1 次提交
  5. 06 11月, 2017 1 次提交
  6. 09 10月, 2017 3 次提交
  7. 08 10月, 2017 1 次提交
  8. 14 9月, 2017 1 次提交
  9. 25 8月, 2017 1 次提交
  10. 29 7月, 2017 1 次提交
  11. 24 7月, 2017 1 次提交
    • S
      Refactor Active Record to let Arel manage bind params · 213796fb
      Sean Griffin 提交于
      A common source of bugs and code bloat within Active Record has been the
      need for us to maintain the list of bind values separately from the AST
      they're associated with. This makes any sort of AST manipulation
      incredibly difficult, as any time we want to potentially insert or
      remove an AST node, we need to traverse the entire tree to find where
      the associated bind parameters are.
      
      With this change, the bind parameters now live on the AST directly.
      Active Record does not need to know or care about them until the final
      AST traversal for SQL construction. Rather than returning just the SQL,
      the Arel collector will now return both the SQL and the bind parameters.
      At this point the connection adapter will have all the values that it
      had before.
      
      A bit of this code is janky and something I'd like to refactor later. In
      particular, I don't like how we're handling associations in the
      predicate builder, the special casing of `StatementCache::Substitute` in
      `QueryAttribute`, or generally how we're handling bind value replacement
      in the statement cache when prepared statements are disabled.
      
      This also mostly reverts #26378, as it moved all the code into a
      location that I wanted to delete.
      
      /cc @metaskills @yahonda, this change will affect the adapters
      
      Fixes #29766.
      Fixes #29804.
      Fixes #26541.
      Close #28539.
      Close #24769.
      Close #26468.
      Close #26202.
      
      There are probably other issues/PRs that can be closed because of this
      commit, but that's all I could find on the first few pages.
      213796fb
  12. 20 7月, 2017 1 次提交
  13. 18 7月, 2017 1 次提交
    • R
      Fix `JoinDependency` with using a custom table · ea09bf54
      Ryuta Kamizono 提交于
      Without this fix, `JoinDependency` doesn't use a custom table alias:
      
      ```
      % ARCONN=sqlite3 be ruby -w -Itest test/cases/relations_test.rb -n test_using_a_custom_table_with_joins_affects_the_wheres
      Using sqlite3
      Run options: -n test_using_a_custom_table_with_joins_affects_the_wheres --seed 14531
      
      E
      
      Error:RelationTest#test_using_a_custom_table_with_joins_affects_the_wheres:
      ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: posts.author_id: SELECT  "omg_posts".* FROM "posts" "omg_posts" INNER JOIN "authors" ON "authors"."id" = "posts"."author_id" WHERE "omg_posts"."title" = ? LIMIT ?
      ```
      ea09bf54
  14. 17 7月, 2017 1 次提交
  15. 06 7月, 2017 1 次提交
    • E
      Skip query cache for in_batches and friends · 6658e374
      Eugene Kenny 提交于
      The `find_each`, `find_in_batches` and `in_batches` APIs usually operate
      on large numbers of records, where it's preferable not to load them all
      into memory at once.
      
      If the query cache is enabled, it will hold onto the query results until
      the end of the execution context (request/job), which means the memory
      used is still proportional to the total number of records. These queries
      are typically not repeated, so the query cache isn't desirable here.
      6658e374
  16. 02 7月, 2017 1 次提交
  17. 01 7月, 2017 1 次提交
  18. 29 6月, 2017 1 次提交
  19. 24 6月, 2017 1 次提交
  20. 20 6月, 2017 1 次提交
  21. 15 6月, 2017 2 次提交
  22. 11 5月, 2017 1 次提交
  23. 10 4月, 2017 1 次提交
  24. 09 4月, 2017 1 次提交
  25. 04 4月, 2017 1 次提交
  26. 29 3月, 2017 1 次提交
    • W
      FinderMethods#fourty_two docs cite proper source · e77d4d1e
      Winfred Nadeau 提交于
      silly method gets a silly doc fix, 
      or I'm missing an even sillier joke and I'm about to get schooled.
      
      BUT I'm pretty sure this is some serious Beaudrillard simulacrum, though.
      I'm just doing my part to spread the gospel of Douglas Adams.
      e77d4d1e
  27. 26 2月, 2017 2 次提交
  28. 31 1月, 2017 1 次提交
  29. 04 1月, 2017 1 次提交
  30. 30 12月, 2016 1 次提交
  31. 29 12月, 2016 1 次提交
  32. 24 12月, 2016 1 次提交
  33. 06 12月, 2016 1 次提交
  34. 24 11月, 2016 1 次提交
    • D
      Restore RecordNotFound when *_ids= can't find records by ID · 15e2da65
      Dominic Cleal 提交于
      9c9fb19b changed the behaviour of the _ids= setters for associations to
      raise an AssociationTypeMismatch when unknown IDs are given:
      
          Class: <ActiveRecord::AssociationTypeMismatch>
          Message: <"Developer(#43811860) expected, got NilClass(#16732720)">
      
      This restores the original ActiveRecord::RecordNotFound exception with a
      much clearer error message:
      
          Class: <ActiveRecord::RecordNotFound>
          Message: <"Couldn't find all Developers with 'id': (1, -9999) [WHERE \"contracts\".\"company_id\" = ?] (found 1 results, but was looking for 2)">
      
      Fixes #25719
      15e2da65
  35. 09 11月, 2016 1 次提交
    • R
      Should except `:distinct` rather than `:order` for `exists?` · 2bf7c300
      Ryuta Kamizono 提交于
      Records fetching order is very important for performance if `limit` is
      presented. Should not except the order in the case.
      
      And `exists?` replaces select list to `1 AS one` therefore `:distinct`
      is useless (`DISTINCT 1 AS one`). And PostgreSQL raises the following
      error if `:distinct` and `:order` are used in the same time.
      
      ```
      ERROR:  for SELECT DISTINCT, ORDER BY expressions must appear in select list
      ```
      2bf7c300