1. 04 8月, 2017 3 次提交
  2. 03 8月, 2017 1 次提交
  3. 01 8月, 2017 1 次提交
  4. 30 7月, 2017 1 次提交
  5. 29 7月, 2017 1 次提交
  6. 28 7月, 2017 3 次提交
  7. 27 7月, 2017 1 次提交
    • S
      Use `_relation_for_itself` wherever possible · 6be22632
      Sean Griffin 提交于
      Anywhere that we're doing `self.class.unscoped.where(primary_key => id)`
      is somewhere that someone may want to extend. Even if this method isn't
      public API yet, this will make it easier for us to eventually expose an
      API around this. Plus, duplicated code makes me sad.
      6be22632
  8. 26 7月, 2017 6 次提交
    • M
      Avoid duplicate clauses when using #or · 110e0e1f
      Maxime Lapointe 提交于
      Condenses the clauses that are common to both sides of the OR and put them outside, before the OR
      This fix the current behavior where the number of conditions is exponential based on the number of times #or is used.
      110e0e1f
    • R
      Building `where_clause` in `UniquenessValidator` is no longer needed · 23b53294
      Ryuta Kamizono 提交于
      Building `where_clause` manually was introduced at #26073 to include
      both `comparison` and `binds` in `where_clause`. Since 213796fb,
      `comparison` includes `binds`, so it is enough to use `where` simply.
      23b53294
    • L
      Clarify add_column limit documentation · 7f58ef65
      Lisa Ugray 提交于
      The limit option is ignored by PostgreSQL and may be ignored by 3rd
      party backends.  Make this clear in the docs.  Fixes #29922.
      7f58ef65
    • S
      Allow `Relation#or` to accept a relation with different `references` · ea613910
      Sean Griffin 提交于
      Note that the two relations must still have the same `includes` values
      (which is the only time `references` actually does anything). It makes
      sense for us to allow this, as `references` is called implicitly when
      passing a hash to `where`.
      
      Fixes #29411
      ea613910
    • R
      Remove single element array preprocess · 21c0e0e8
      Ryuta Kamizono 提交于
      Since 213796fb, array predicate handler supports making binds, so the
      preprocess is no longer needed.
      21c0e0e8
    • S
      Require alpha arel · 089ca520
      Sean Griffin 提交于
      Without this change, bundler will resolve a gemfile which is pointing at
      Rails master and not arel master. The error message that someone will
      get from doing this will be incredibly unhelpful, as it'll be the result
      of ActiveRecord being in a half-loaded that halted at `require
      "arel/collectors/composite"`, which was subsequently rescued in
      `"rails/all"`
      089ca520
  9. 25 7月, 2017 9 次提交
    • S
      Fix failing tests · 82200b25
      Sean Griffin 提交于
      `bind_values` was removed from Arel
      82200b25
    • R
      Remove unused `queries_predicates` · 049034c3
      Ryuta Kamizono 提交于
      Since 213796fb, `queries_predicates` is no longer used.
      049034c3
    • R
      Remove useless `JoinInformation` · ea37a570
      Ryuta Kamizono 提交于
      Since 213796fb removed `binds`, `JoinInformation` only contain `joins`.
      So it is enough to return `joins` simply.
      ea37a570
    • K
      601cb795
    • L
      Stop creating ApplicationRecord on model generation · 75ccdfed
      Lisa Ugray 提交于
      When generating models, we created ApplicationRecord in the default
      location if no file existed there.  That was annoying for people who
      moved it to somewhere else in the autoload path.  At this point, the
      vast majority of apps should have either run the upgrade script or
      generated a model since upgrading.  For those that haven't the error
      message after generating a new model should be helpful:
      
         NameError: uninitialized constant ApplicationRecord
      
      To ease friction in that case, this also adds a generator for
      ApplicationRecord.
      75ccdfed
    • R
    • R
      Fix `warning: assigned but unused variable - comment` · 36b7f3ae
      Ryuta Kamizono 提交于
      ```
      % ARCONN=sqlite3 be ruby -w -Itest test/cases/associations/belongs_to_associations_test.rb -n test_multiple_counter_cache_with_after_create_update
      test/cases/associations/belongs_to_associations_test.rb:1181: warning: assigned but unused variable - comment
      Using sqlite3
      Run options: -n test_multiple_counter_cache_with_after_create_update --seed 49644
      
      .
      
      Finished in 0.114266s, 8.7515 runs/s, 17.5030 assertions/s.
      
      1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
      ```
      36b7f3ae
    • R
      `Relation::Merger` should not fill `values` with empty values · 45955aed
      Ryuta Kamizono 提交于
      Currently `Relation#merge` will almost fill `values` with empty values
      (e.g. `other.order_values` is always true, it should be
      `other.order_values.any?`). This means that `Relation#merge` always
      changes `values` even if actually `values` is nothing changed. This
      behavior will makes `Relation#empty_scope?` fragile. So `Relation#merge`
      should avoid unnecessary changes.
      45955aed
    • S
      Fix test failures when prepared statements are disabled · 846832ae
      Sean Griffin 提交于
      This also reverts the change to enable prepared statements by default on
      MySQL (though I suspect we could enable them and it'd be great). This
      change brings back a collector closer to the old `Bind` collector in
      Arel. However, this one lives in AR, since this is an AR specific need.
      Additionally, we only use it for statement caching, since the new
      substitute collector in Arel is higher performance for most cases.
      846832ae
  10. 24 7月, 2017 5 次提交
    • S
      Fix build failures on PG · a6984244
      Sean Griffin 提交于
      Honestly I don't think the tests that are fixed by this change should
      have been merged. Passing a range or an array to `where` has a special
      meaning. We need to solve the problem more concretely without overriding
      the behavior that is present for *every* other type.
      
      However, the damage has been done. These changes were in 5.1, so we need
      a deprecation cycle to remove it.
      a6984244
    • S
      Fix build failures on MySQL · 2eaa7be6
      Sean Griffin 提交于
      There's an actual bug in 213796fb around
      prepared statements being disabled. I'm looking into it, but in the mean
      time this gets the build green so it doesn't block other PRs
      2eaa7be6
    • 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
    • R
      Remove duplicated assertion in `test_count_with_join` · f2326428
      Ryuta Kamizono 提交于
      The queries both `res2` and `res3` are completely the same.
      And also, `assert_nothing_raised` is covered by following assertion.
      f2326428
    • E
      Avoid modifying frozen string in check_schema_file · 2b331e90
      Eugene Kenny 提交于
      This was missed when the frozen string literal pragma was added to this
      file because the string is only modified when running in the context of
      a full Rails app, which wasn't covered by the test suite.
      2b331e90
  11. 22 7月, 2017 6 次提交
  12. 21 7月, 2017 1 次提交
  13. 20 7月, 2017 2 次提交