| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Cached collections only work if there is one template. If there are
more than one templates, the caching mechanism doesn't have a key.
|
|\
| |
| | |
Avoid ajv@6.9.0 for now
|
| |
| |
| |
| |
| | |
Because ajv@6.9.0 does not work with webpack.
Ref: https://github.com/epoberezkin/ajv/issues/941
|
| |
| |
| |
| | |
https://travis-ci.org/rails/rails/jobs/491045821#L1528-L1531
|
|\ \
| |/
|/|
| | |
Do not allow to add column without column name
|
| | |
|
|\ \
| |/
|/| |
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 `#<<`
|