| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Refactor to use `touch_updates`
Ensures we only call `current_time_from_proper_timezone` from one place.
* Clarify touch default in tests.
Not interested in what happens when passed false but that
nothing passed means no touching.
* Backdate touched columns in tests.
We can't be sure a test progresses through time, so our
touching code may be working correctly but the test
itself is brittle.
Fix by backdating that's further in the past akin to
what the timestamps tests do:
https://github.com/rails/rails/blob/d753645d40e925973724e4c3a8617b654da90e41/activerecord/test/cases/timestamp_test.rb#L17
* Expand changelog entry.
Elaborate and show examples.
Closes #26995.
[ Jarred Trost & Kasper Timm Hansen ]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`timestamp_attributes_for_{create,update}` is defined as symbol but
always used as string with `to_s`. This allocates extra strings. To
avoid extra allocation, change the definitions from symbol to string.
```ruby
pp ObjectSpace::AllocationTracer.trace {
1_000.times { |i|
Post.create!
}
}
```
Before:
```
["~/rails/activerecord/lib/active_record/timestamp.rb", 121]=>[1002, 0, 750, 0, 1, 18528],
["~/rails/activerecord/lib/active_record/timestamp.rb", 105]=>[1002, 0, 750, 0, 1, 7720],
["~/rails/activerecord/lib/active_record/timestamp.rb", 101]=>[1002, 0, 750, 0, 1, 7720],
["~/rails/activerecord/lib/active_record/timestamp.rb", 109]=>[1002, 0, 750, 0, 1, 13896],
["~/rails/activerecord/lib/active_record/timestamp.rb", 61]=>[4008, 0, 3000, 0, 1, 30880],
```
After:
```
["~/rails/activerecord/lib/active_record/timestamp.rb", 120]=>[1000, 0, 756, 0, 1, 17184],
["~/rails/activerecord/lib/active_record/timestamp.rb", 104]=>[1000, 0, 756, 0, 1, 7160],
["~/rails/activerecord/lib/active_record/timestamp.rb", 100]=>[1000, 0, 756, 0, 1, 7160],
["~/rails/activerecord/lib/active_record/timestamp.rb", 108]=>[1000, 0, 756, 0, 1, 12888],
```
|
|
|
|
|
| |
Currently schema dumper does not dump array subtype `precision` and
`scale` options. This commit fixes the issue.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
provided.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Make ActiveRecord structure load/dump configurable
|
| |
| |
| |
| |
| |
| |
| |
| | |
Without this patch it's impossible to pass extra flags to
mysqldump/pg_dump when running `rake db:structure:dump` or `load`
The following config variables (`structure_load_flags` and `structure_dump_flags`)
make it better configurable.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This issue was introduced with d849f42 to solve #19782. However, we can
solve #19782 without causing the issue. It is enough to save only when
necessary.
Fixes #27338.
|
| |
| |
| |
| |
| |
| | |
Some methods were added to public API in
5b14129d8d4ad302b4e11df6bd5c7891b75f393c and they should be not part of
the public API.
|
|\ \
| | |
| | | |
Add a record to target before any callbacks loads the record
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
`append_record` was added at 15ddd51 for not double adding the record.
But adding `append_record` (checking `@target.include?(record)`) caused
performance regression #27434. Instead of checking not double adding the
record, add a record to target before any callbacks loads the record.
Fixes #27434.
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|\
| |
| | |
Remove useless `test_supports_primary_key`
|
| |
| |
| |
| |
| | |
`supports_primary_key?` method is defined in `AbstractAdapter` so does
not raise any errors.
|
|/ |
|
|\
| |
| | |
Simplify the regex for `unsigned?` method
|
| |
| |
| |
| |
| | |
It is enough to distinguish only the trailing `unsigned` and
`unsigned zerofill`.
|
|\ \
| | |
| | | |
Throw friendly error message when fixture is not a hash
|
| | |
| | |
| | |
| | |
| | |
| | | |
Right now, when fixture is not a Hash we throw an error message
saying "fixture is not a hash". This is not very user friendly because
it's not saying which fixture is invalid.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
make sql statements frozen
dup if arel is not our string
expect runtime error
dont wrap runtime error in invalid
log errors will now be treated as runtime errors
update changelog
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This fixes the following warning.
```
test/caching_test.rb:986: warning: parentheses after method name is interpreted as
test/caching_test.rb:986: warning: an argument list, not a decomposed argument
test/cases/adapters/mysql2/reserved_word_test.rb:146: warning: parentheses after method name is interpreted as
test/cases/adapters/mysql2/reserved_word_test.rb:146: warning: an argument list, not a decomposed argument
```
Ref: https://github.com/ruby/ruby/commit/65e27c8b138d6959608658ffce2fa761842b8d24
|
|\ \ \
| | | |
| | | | |
Schema cache in YAML
|
| | | | |
|
| |_|/
|/| | |
|
| |/
|/| |
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/prevent_range_error_for_belongs_to_associations
Prevent `RangeError` for `belongs_to` associations
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently to access `belongs_to` associations raises a `RangeError` if
foreign key attribute has out of range value.
It should return a nil value rather than raising a `RangeError`.
Fixes #20140.
|
|\ \ \
| | | |
| | | | |
Translate numeric value out of range to the specific exception
|
| | | |
| | | |
| | | |
| | | | |
Raise `ActiveRecord::RangeError` when values that executed are out of range.
|