| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Avoid bumping the class serial when invoking executor
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
ActiveModel::Type)
Some code was previously referring to ActiveModel::Type::*. This could
cause issues in the future if any of the ActiveRecord::Type classes were
overridden in the future.
|
|\ \
| |/
|/| |
Fix issue with `cache_key` when the named timestamp column has value nil
|
| |
| |
| |
| |
| |
| |
| | |
- When the named timestamp column is nil, we should just return the
cache_key with model name and id similar to the behavior of implicit
timestamp columns.
- Fixed one of the issue mentioned in https://github.com/rails/rails/issues/26417.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Zlib is used to generate the advisory lock since commit 2c2a8755460 .
Using the Migrator fails since then, when it is called without the rails context:
NameError: uninitialized constant ActiveRecord::Migrator::Zlib
This patch fixes the above error.
|
|\ \
| | |
| | | |
Preserve cached queries name in AS notifications
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was caused by 6d0d83a33f59d9415685852cf77818c41e2e2700. While the
bug it's trying to fix is handled if the association is loaded in an
after_(create|save) callback, it doesn't handle any cases that load the
association before the persistence takes place (validation, or before_*
filters). Instead of caring about the timing of persistence, we can just
ensure that we're not double adding the record instead.
The test from that commit actually broke, but it was not because the bug
has been re-introduced. It was because `Bulb` in our test suite is doing
funky things that look like STI but isn't STI, so equality comparison
didn't happen as the loaded model was of a different class.
Fixes #26661.
|
|\ \ \
| | | |
| | | | |
[ci skip] Use right format text
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix doc format for `RecordFetchWarning` [ci skip]
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is not as good a solution as actually hashing both values, but Ruby
doesn't expose that capability other than allocating the array. Unless we were
to do something silly like have a thread local array that is re-used, I don't
see any other way to do this without allocation. This solution may not be
perfect, but it should reasonably avoid collisions to the extent that we need.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Per discussion in pull request #26622:
"Let's change it to PG::Error. The more specific classes mentioned are
subclasses, and the fact the raised exception is a PG::UndefinedColumn
doesn't change the fact that it's also a PG::Error." - matthewd
|
|\ \ \ \
| | | | |
| | | | | |
[ci skip] Clarify Postgresql Documentation
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This clarifies the object that +ActiveRecord::Base.connection.execute+
will return when using Postgresql.
|
|/ / / /
| | | |
| | | | |
Noticed that the `validate: false` option for `ActiveRecord::Persistence#save` and `#save!` were not formatted as code like the other examples in the documentation.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Test: JSON attribute value nil can be used in where(attr: nil)
Add changelog entry
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- If the attribute is not changed, then update_attribute does not run
SQL query, this effectively means that no change was made to the
attribute.
- This change was made in https://github.com/rails/rails/commit/0fcd4cf5
to avoid a SQL call.
- But the change resulted into `nil` being returned when there was no
change in the attribute value.
- This commit corrects the behavior to return true if there is no change
in attribute value. This is same as previous behavior of Rails 4.2
plus benefit of no additional SQL call.
- Fixes #26593.
|
|\ \ \ |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When the association is autosaved we were storing the details with
string keys. This was creating inconsistency with other details that are
added using the `Errors#add` method. It was also inconsistent with the
`Errors#messages` storage.
To fix this inconsistency we are always storing with symbols. This will
cause a small breaking change because in those cases the details could
be accessed as strings keys but now it can not.
The reason that we chose to do this breaking change is because `#details`
should be considered a low level object like `#messages` is.
Fix #26499.
[Rafael Mendonça França + Marcus Vieira]
|
|\ \ \ \
| | | | |
| | | | | |
Reduce array allocation when `where` with passed hash
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In most case `where` is called with passed hash. In the case
initializing `binds` is unnecessary.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Remove unnecessry `alias uniq distinct` for collection association
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
`CollectionAssociation` is internal class and `uniq` is not called.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Rename variable name that returning `type_for` to `type` from `column`
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`column_for` was changed to `type_for` to return `type` object at
36bd52b4. But variable name is still `column`. It is very confusing.
Rename variable name `column` to `type` for readability.
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Clear attribute changes after handling locking
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Without this the changes to the lock version column will stick around
even after `touch` returns.
Before:
model.touch
model.changes
# => {"lock_version"=>[0, "1"]}
After:
model.touch
model.changes
# {}
|
| | | | |
| | | | |
| | | | |
| | | | | |
[fixes #26441]
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
All indentation was normalized by rubocop auto-correct at 80e66cc4d90bf8c15d1a5f6e3152e90147f00772.
But comments was still kept absolute position. This commit aligns
comments with method definitions for consistency.
|
|\ \ \ \
| | | | |
| | | | | |
remove duplicated fixture set names
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If using namespaced fixtures, get following Ruby warning.
```
activerecord/lib/active_record/fixtures.rb:922: warning: method redefined; discarding old admin_foos
activerecord/lib/active_record/fixtures.rb:922: warning: previous definition of admin_foos was here
```
This is happening because of the multiple set the same path when setting the
fixture name. Fix to remove the duplicate path.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
activerecord/mysql2: Avoid setting @connection to nil, just close it
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
By doing `@connection = nil` that means that we need nil checks before it
is used anywhere, but we weren't doing those checks. Instead, we get a
NoMethodError after using a connection after it fails to reconnect.
Neither of the other adapters set @connection to nil, just the mysql2
adapter. By just closing it, we avoid the need to check if we have a
connection object and it will produce an appropriate exception when used.
|
| |/ /
|/| |
| | |
| | | |
This comment was added at eaf5486 but already implemented.
|
|\ \ \
| |/ /
|/| | |
Pass `set_inverse_instance` block to `sc.execute` for `SingularAssociation`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Follow up to caa178c.
caa178c updated all code which sets inverse instances on newly loaded
associations to use block. But `SingularAssociation` was forgotten it.
|
| | | |
|
|\ \ \
| |_|/
|/| | |
[ci skip] Remove duplicate example.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Recently, the Rails team made an effort to keep the source code consistent, using Ruboco
(bb1ecdcc677bf6e68e0252505509c089619b5b90 and below). Some of the case
statements were missed.
This changes the case statements' formatting and is consistent with changes
in 810dff7c9fa9b2a38eb1560ce0378d760529ee6b and db63406cb007ab3756d2a96d2e0b5d4e777f8231.
|
|\ \ \
| | | |
| | | | |
Remove redundant `!loaded?` condition
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Already checked `if !find_target? || loaded?`, unnecessary `!loaded?` in
elsif condition.
|
|/ / /
| | |
| | |
| | |
| | | |
Bang methods of `AR::QueryMethods` are used only internally.
We only use `left_outer_joins!`, so we can remove this alias.
|
|\ \ \
| |/ /
|/| | |
Remove unnecessary `query_scope`
|
| | | |
|