| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
|\
| |
| | |
Fix `enum` with `alias_attribute`
|
| |
| |
| |
| | |
Fixes #25892.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So this bug is kinda funky. The code path is basically "if we weren't passed an
instance of the class we compose to, and we have a converter, call that".
Ignoring the hash case for a moment, everything after that was roughly intended
to be the "else" clause, meaning that we are expected to have an instance of
the class we compose to. Really, we should be blowing up in that case, as we
can give a much better error message than what they user will likely get (e.g.
`NameError: No method first for String` or something). Still, Ruby is duck
typed, so if the object you're assigning responds to the same methods as the
type you compose to, knock yourself out.
The hash case was added in 36e9be8 to remove a bunch of special cased code from
multiparameter assignment. I wrongly assumed that the only time we'd get a hash
there is in that case. Multiparameter assignment will construct a very specific
hash though, where the keys are integers, and we will have a set of keys
covering `1..part.size` exactly. I'm pretty sure this could actually be passed
around as an array, but that's a different story. Really I should convert this
to something like `class MultiParameterAssignment < Hash; end`, which I might
do soon. However for a change that I'm willing to backport to 4-2-stable, this
is what I want to go with for the time being.
Fixes #25978
|
| | |
|
|\ \
| |/
|/|
| |
| |
| | |
Introduce new ActiveRecord transaction error classes
Closes #26018
|
| | |
|
|\ \
| | |
| | | |
`FinderMethods` uses `records` (`load_target`) when `loaded?` is true
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix to `CollectionProxy#load` does `load_target`
|
| |/ / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
kamipo/association_name_is_the_same_as_join_table_name
Correctly return `associated_table` when `associated_with?` is true
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`AssociationQueryHandler` requires `association` initialized
`TableMetadata` even if `table_name == arel_table.name`.
Fixes #25689.
|
| | | |
| | | |
| | | |
| | | | |
Fixes #25653.
|
|\ \ \ \
| | | | |
| | | | | |
Add an assertion to the tests that should be loaded the target.
|
| | | | |
| | | | |
| | | | |
| | | | | |
These test cases tests exactly mutating loaded target.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Quoting booleans should return a frozen string
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If reuse `QUOTED_TRUE` and `QUOTED_FALSE` without frozen, causing the
following issue.
```
Loading development environment (Rails 5.1.0.alpha)
irb(main):001:0> ActiveRecord::Base.connection.quote(true) << ' foo'
=> "1 foo"
irb(main):002:0> ActiveRecord::Base.connection.quote(true) << ' foo'
=> "1 foo foo"
irb(main):003:0> type = ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::MysqlString.new
=> #<ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::MysqlString:0x007fd40c15e018 @precision=nil, @scale=nil, @limit=nil>
irb(main):004:0> type.serialize(true) << ' bar'
=> "1 foo foo bar"
irb(main):005:0> type.cast(true) << ' bar'
=> "1 foo foo bar bar"
```
|
|\ \ \ \ \
| | | | | |
| | | | | | |
`load_target` is a public method
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`send` is unnecessary.
|
| |/ / / /
|/| | | |
| | | | |
| | | | | |
This is not a test case.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously we had primarily tested the behavior of these attributes by
calling `.new`, allowing this to slip through the cracks. There were a
few ways in which they were behaving incorrectly.
The biggest issue was that attempting to read the attribute would
through a `MissingAttribute` error. We've corrected this by returning
the default value when the attribute isn't backed by a database column.
This is super special cased, but I don't see a way to avoid this
conditional. I had considered handling this higher up in
`define_default_attribute`, but we don't have the relevant information
there as users can provide new defaults for database columns as well.
Once I corrected this, I had noticed that the attributes were always
being marked as changed. This is because the behavior of
`define_default_attribute` was treating them as assigned from
`Attribute::Null`.
Finally, with our new implementation, `LazyAttributeHash` could no
longer be marshalled, as it holds onto a proc. This has been corrected
as well. I've not handled YAML in that class, as we do additional work
higher up to avoid YAML dumping it at all.
Fixes #25787
Close #25841
|
| |_|/ /
|/| | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It all started noticing some foo.method({ ... }) method calls
in passing. This is a whole pass modernizing this file.
While some string literals are edited where I touched code,
this pass does not uniformizes quotes. A ton are left untouched
on purposes. We have no defined style.
|
|/ / /
| | |
| | |
| | |
| | | |
Where appropriatei, prefer the more concise Regexp#match?,
String#include?, String#start_with?, or String#end_with?
|
|\ \ \
| | | |
| | | | |
Fix explain logging with binds
|
| | | |
| | | |
| | | |
| | | | |
`binds` is an array of a query attribute since Active Record 5.0.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
kamipo/add_exists_and_update_all_to_collection_proxy
Add `exists?` and `update_all` to `CollectionProxy` for respects an association scope
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
association scope
Fixes #25732.
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
yahonda/remove_set_date_columns_and_modify_attributes_test
Remove Oracle specific tests based on deprecated behaviors
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Refer https://github.com/rsim/oracle-enhanced/pull/845
Remove `set_date_columns` which has been deprecated in Oracle enhanced adapter
- Refer https://github.com/rsim/oracle-enhanced/pull/869
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
kamipo/move_warning_about_composite_primary_key_to_attribute_methods_primary_key
Move the warning about composite primary key to `AttributeMethods::PrimaryKey`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Actually schema dumper/creation supports composite primary key (#21614).
Therefore it should not show the warning about composite primary key in
connection adapter.
This change moves the warning to `AttributeMethods::PrimaryKey` and
suppress the warning for habtm join table.
Fixes #25388.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Fix the calling `merge` method at first in a scope
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Changing the order of method chaining `merge` and other query
method such as `joins` should produce the same result.
```ruby
class Topic < ApplicationRecord
scope :safe_chaininig, -> { joins(:comments).merge(Comment.newest) }
scope :unsafe_chaininig, -> { merge(Comment.newest).joins(:comments) } #=> NoMethodError
end
```
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Refactored method `ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#default_sequence_name`. Refactored test `HasManyAssociationsTest#test_do_not_call_callbacks_for_delete_all`.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
`HasManyAssociationsTest#test_do_not_call_callbacks_for_delete_all`
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
alpaca-tc/fixes_multiparameter_attributes_on_time_with_time_zone_aware_attributes
Fix bug in method AR TimeZoneConverter#set_time_zone_without_conversion
|
| | |_|_|/ / /
| |/| | | | |
| | | | | | |
| | | | | | | |
and invalid params
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
Fix `payload[:class_name]` to `payload[:spec_name]`
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Follow up to #20818.
`retrieve_connection` is passed `spec_name` instead of `klass` since #24844.
|
| |_|/ / / /
|/| | | | |
| | | | | |
| | | | | | |
Address to https://github.com/rails/rails/commit/5a302bf553af0e6fedfc63299fc5cd6e79599ef3#commitcomment-18288388.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Albeit the previous existence of this method is not seen in
the patch itself, the declaration
mattr_accessor :error_on_ignored_order_or_limit, instance_writer: false
was present before. It was removed recently in 210012f.
|
| |/ / / /
|/| | | | |
|