aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix random CI failure due to non-deterministic sorting orderRyuta Kamizono2019-02-101-3/+3
| | | | https://travis-ci.org/rails/rails/jobs/491045821#L1528-L1531
* Merge pull request #35203 from chiastolite/add_column_without_column_namesRyuta Kamizono2019-02-102-0/+12
|\ | | | | | | Do not allow to add column without column name
| * Do not allow to add column without column nameHiroyuki Morita2019-02-102-0/+10
| |
* | Merge pull request #35201 from rails/no-leaks2Aaron Patterson2019-02-098-20/+60
|\ \ | |/ |/| Fix memory leaks in development
| * Always call superAaron Patterson2019-02-083-3/+1
| |
| * reuse details cache key identity objectAaron Patterson2019-02-081-5/+1
| |
| * Teach DetailsKey how to clear the template cacheAaron Patterson2019-02-085-11/+38
| | | | | | | | | | This commit exposes all system wide view paths so that we can clear their caches.
| * Split digest cache from details identity cacheAaron Patterson2019-02-084-8/+27
| | | | | | | | | | This commit splits the digest cache from the "details identity" cache. Now both caches can be managed independently.
* | Refactor to extract defining column methods as `define_column_methods`Ryuta Kamizono2019-02-093-142/+161
| | | | | | | | | | It makes to ease to handle all short-hand methods (e.g. validates arguments etc).
* | Fix rubocop violationsyuuji.yaginuma2019-02-092-11/+9
| |
* | Remove redundant returning `object`Ryuta Kamizono2019-02-091-1/+0
| | | | | | | | `object.transform_values!` returns `object` itself.
* | Use Ruby 2.4+ native transform_values(!)Kasper Timm Hansen2019-02-081-7/+2
| |
* | Delete uneeded blank fileGuillermo Iguaran2019-02-081-0/+0
| |
* | Add 'Hash#deep_transform_values', and 'Hash#deep_transform_values!'Guillermo Iguaran2019-02-085-0/+84
| |
* | Refactor to just use `Association#target=` in `associate_records_to_owner`Ryuta Kamizono2019-02-091-3/+2
| | | | | | | | | | | | | | | | | | | | | | `Association#target=` invokes `loaded!`, so we no longer need to call the `loaded!` explicitly. Since Preloader is private API, we don't guarantee that it behaves like older version as long as using Preloader directly. But this refactoring fortunately also fix the Preloader compatibility issue #35195. Closes #35195.
* | Merge pull request #34618 from bogdanvlviv/fix-elapsed-time-calculationsKasper Timm Hansen2019-02-084-9/+9
|\ \ | | | | | | Fix elapsed time calculations
| * | Fix elapsed time calculationsbogdanvlviv2019-02-084-9/+9
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've found a few places in Rails code base where I think it makes sense to calculate elapsed time more precisely by using `Concurrent.monotonic_time`: - Fix calculation of elapsed time in `ActiveSupport::Cache::MemoryStore#prune` - Fix calculation of elapsed time in `ActiveRecord::ConnectionAdapters::ConnectionPool::Queue#wait_poll` - Fix calculation of elapsed time in `ActiveRecord::ConnectionAdapters::ConnectionPool#attempt_to_checkout_all_existing_connections` - Fix calculation of elapsed time in `ActiveRecord::ConnectionAdapters::Mysql2Adapter#explain` See https://docs.ruby-lang.org/en/2.5.0/Process.html#method-c-clock_gettime https://blog.dnsimple.com/2018/03/elapsed-time-with-ruby-the-right-way Related to 7c4542146f0dde962205e5a90839349631ae60fb
* | Merge pull request #35193 from kamipo/fix_exists_with_distinct_and_offsetRyuta Kamizono2019-02-082-4/+18
|\ \ | | | | | | Fix `relation.exists?` with giving both `distinct` and `offset`
| * | Fix `relation.exists?` with giving both `distinct` and `offset`Ryuta Kamizono2019-02-082-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `distinct` affects (reduces) rows of the result, so it is important part when both `distinct` and `offset` are given. Replacing SELECT clause to `1 AS one` and removing `distinct` and `order` is just optimization for the `exists?`, we should not apply the optimization for that case. Fixes #35191.
* | | Merge pull request #35178 from bogdan/has-many-sizeRyuta Kamizono2019-02-082-2/+17
|\ \ \ | |/ / |/| | Bugfix has_many association #size when ids reader is cached and assoc…
| * | Bugfix has_many association #size when ids reader is cached and association ↵Bogdan Gusiev2019-02-082-2/+17
| | | | | | | | | | | | is changed
* | | Refactor extracting `current_scope_restoring_block` into the scoping classRyuta Kamizono2019-02-082-5/+9
| | | | | | | | | | | | Relation is not best place to do this.
* | | Merge pull request #35099 from yahonda/diag35098Ryuta Kamizono2019-02-082-3/+4
|\ \ \ | | | | | | | | Address test_belongs_to_does_not_use_order_by failure
| * | | Address `test_belongs_to_does_not_use_order_by` failure due to checking ↵Yasuo Honda2019-02-082-3/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | order by for metadata queries Also, `test_has_one_does_not_use_order_by` should not check metadata queries. Fixes #35098
* | | Merge pull request #35187 from jhawthorn/db-selection-resolver_contextEileen M. Uchitelle2019-02-073-7/+8
|\ \ \ | | | | | | | | Finish rename of database_operations to database_resolver_context
| * | | Update CHANGELOG for database_resolver_contextJohn Hawthorn2019-02-071-2/+2
| | | |
| * | | Rename database_operations config to *_contextJohn Hawthorn2019-02-072-5/+6
|/ / /
* | | Merge pull request #35182 from jhawthorn/db-selection-refactorEileen M. Uchitelle2019-02-073-19/+19
|\ \ \ | |_|/ |/| | Improve naming in DatabaseSelector
| * | Rename database selector operations to contextJohn Hawthorn2019-02-072-18/+18
| | |
| * | Rename resolver ivar to operations in ResolverJohn Hawthorn2019-02-061-7/+7
| | | | | | | | | | | | | | | We're already in the resolver, we call this class "operations" in the middleware, so we should use the same naming here.
| * | Rename Session.build to Session.callJohn Hawthorn2019-02-062-2/+2
| | | | | | | | | | | | | | | | | | | | | This is more consistent with Resolver, which has build called. This allows using a Proc instead of a class, which could be nice if you need to vary switching logic based on the request in a more ad-hoc way (ie. check if it is an API request).
* | | Merge pull request #35186 from kamipo/fix_leaking_scope_on_relation_createRyuta Kamizono2019-02-075-6/+45
|\ \ \ | | | | | | | | Fix `relation.create` to avoid leaking scope to initialization block and callbacks
| * | | Fix `relation.create` to avoid leaking scope to initialization block and ↵Ryuta Kamizono2019-02-075-6/+45
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | callbacks `relation.create` populates scope attributes to new record by `scoping`, it is necessary to assign the scope attributes to the record and to find STI subclass from the scope attributes. But the effect of `scoping` is class global, it was caused undesired behavior that pollute all class level querying methods in initialization block and callbacks (`after_initialize`, `before_validation`, `before_save`, etc), which are user provided code. To avoid the leaking scope issue, restore the original current scope before initialization block and callbacks are invoked. Fixes #9894. Fixes #17577. Closes #31526.
* | | Refactor around scopingRyuta Kamizono2019-02-075-18/+16
| | | | | | | | | | | | | | | | | | Don't use `false` as special value to skip to find inherited scope, we could use `skip_inherited_scope = true`, and move `_scoping` back on Relation.
* | | Merge pull request #35036 from rails/av-base-subclassAaron Patterson2019-02-0619-66/+137
|\ \ \ | | | | | | | | Move compiled ERB to an AV::Base subclass
| * | | Fix deprecation warnings and call superAaron Patterson2019-02-061-2/+2
| | | |
| * | | Fix some typos!Aaron Patterson2019-02-062-1/+5
| | | |
| * | | Add a message to help allocate AV::Base instancesAaron Patterson2019-02-061-1/+5
| | | |
| * | | Deprecate finalizer configuration (it doesn't do anything)Aaron Patterson2019-02-064-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | Revert "Remove finalizer and configuration" This reverts commit 9e7b4a3173788ea43b11e74a4d2f69a5f1565daa.
| * | | Rename method so it is more descriptiveAaron Patterson2019-02-061-3/+3
| | | |
| * | | Pull generated methods up in to the anonymous subclassAaron Patterson2019-02-063-19/+8
| | | | | | | | | | | | | | | | Then we don't need the extra module.
| * | | 🚨 Make the cops happy 🚨Aaron Patterson2019-02-063-3/+3
| | | |
| * | | Remove finalizer and configurationAaron Patterson2019-02-065-50/+0
| | | |
| * | | Regenerate AV::Base subclass when DetailsKey gets clearedAaron Patterson2019-02-062-3/+29
| | | |
| * | | Move templates to an anonymous subclass of AV::BaseAaron Patterson2019-02-0613-35/+84
| | | | | | | | | | | | | | | | | | | | Now we can throw away the subclass and the generated methods will get GC'd too
* | | | Allow skipping incineration of processed emailsPratik2019-02-066-1/+23
| |/ / |/| |
* | | Merge pull request #35174 from ypresto/fix-concat-retvalRyuta Kamizono2019-02-064-35/+10
|\ \ \ | | | | | | | | Fix `CollectionProxy#concat` to return self by alias it to `#<<`
| * | | Fix `CollectionProxy#concat` to return self by alias it to `#<<`Yuya Tanaka2019-02-064-35/+10
| | | | | | | | | | | | | | | | Formerly it was returning arguments (`records` array).
* | | | Merge pull request #34971 from y-yagi/improve_railties_testYuji Yaginuma2019-02-062-4/+24
|\ \ \ \ | | | | | | | | | | Improve execution time of railties' test
| * | | | Preload all component gemsyuuji.yaginuma2019-02-061-0/+2
| | | | | | | | | | | | | | | | | | | | To avoid running require individually.