| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Fixes GH#28706. Now rails g migration create_users and rails g model User have the same behavior for timestamps since they implement the same migration template. The expected behavior is that this create table migration will create the table with timestamps unless you pass --no-timestamps or --skip-timestamps to the generator. The expected migration should match what you get when you use the model generator. Using the migration generator, which doesn't have a class_option for timestamps would cause them to not be added to the migration file. Now the migration behavior of the migration generator, create_table only, is aligned with the migration behavior of the model generator. Also modified relevant example of ActiveRecord Migrations Guide.
|
|\
| |
| | |
Fix memory leaks in development
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This commit exposes all system wide view paths so that we can clear
their caches.
|
| |
| |
| |
| |
| | |
This commit splits the digest cache from the "details identity" cache.
Now both caches can be managed independently.
|
| |
| |
| |
| |
| | |
It makes to ease to handle all short-hand methods (e.g. validates
arguments etc).
|
| | |
|
| |
| |
| |
| | |
`object.transform_values!` returns `object` itself.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`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.
|
|\ \
| | |
| | | |
Fix elapsed time calculations
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | | |
Fix `relation.exists?` with giving both `distinct` and `offset`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| |/ /
|/| | |
Bugfix has_many association #size when ids reader is cached and assoc…
|
| | |
| | |
| | |
| | | |
is changed
|
| | |
| | |
| | |
| | | |
Relation is not best place to do this.
|
|\ \ \
| | | |
| | | | |
Address test_belongs_to_does_not_use_order_by failure
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
order by for metadata queries
Also, `test_has_one_does_not_use_order_by` should not check metadata queries.
Fixes #35098
|
|\ \ \
| | | |
| | | | |
Finish rename of database_operations to database_resolver_context
|
| | | | |
|
|/ / / |
|
|\ \ \
| |_|/
|/| | |
Improve naming in DatabaseSelector
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
We're already in the resolver, we call this class "operations" in the
middleware, so we should use the same naming here.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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).
|
|\ \ \
| | | |
| | | | |
Fix `relation.create` to avoid leaking scope to initialization block and callbacks
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
Move compiled ERB to an AV::Base subclass
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Revert "Remove finalizer and configuration"
This reverts commit 9e7b4a3173788ea43b11e74a4d2f69a5f1565daa.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Then we don't need the extra module.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Now we can throw away the subclass and the generated methods will get
GC'd too
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
Fix `CollectionProxy#concat` to return self by alias it to `#<<`
|
| | | |
| | | |
| | | |
| | | | |
Formerly it was returning arguments (`records` array).
|
|\ \ \ \
| | | | |
| | | | | |
Improve execution time of railties' test
|
| | | | |
| | | | |
| | | | |
| | | | | |
To avoid running require individually.
|
| |/ / /
| | | |
| | | |
| | | |
| | | | |
For avoid to affect tests. Also, `action_text:install` task execute
`yarn add`. This is an expensive and should be avoided if it is not needed.
|
|\ \ \ \
| |/ / /
|/| | | |
Update terminal-to-html inline images url in ScreenshotHelper documentation
|