| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
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.
|
| |
| |
| | |
[Rafael Mendonça França + Takeshi AKIMA]
|
|\ \
| | |
| | | |
Remove circular join references in join_dependency
|
| | |
| | |
| | |
| | | |
Fixes #25653.
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
kamipo/decouple_statement_cache_from_connection_adapter
Decouple statement cache from connection adapter
|
| | |
| | |
| | |
| | |
| | |
| | | |
`StatementCache` is hard-coded in `cacheable_query` and be passed
`visitor` and `collector` from connection adapter. Simply it is
enough to pass a collected value.
|
|\ \ \
| | | |
| | | | |
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"
```
|
|\ \ \ \
| | | | |
| | | | | |
Extract `type_casted_binds` method
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Because `type_cast` against `binds` always requires
`attr.value_for_database` and this pattern appears frequently.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
`load_target` is a public method
|
| | | | |
| | | | |
| | | | |
| | | | | |
`send` is unnecessary.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| |_|/ /
|/| | | |
|
|/ / /
| | |
| | |
| | |
| | | |
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.
|
|/ /
| |
| |
| |
| |
| | |
association scope
Fixes #25732.
|
|\ \
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
Do not `binds.dup` in `connection#to_sql`
|
| | | |
| | | |
| | | |
| | | | |
Because `connection#to_sql` does not mutate `binds`.
|
|\ \ \ \
| | | | |
| | | | | |
Use `connection#to_sql` for construct an SQL
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
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`.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#default_sequence_name`
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
`specificiation_id` was renamed to `spec_name`
|
| | |/ / / /
| |/| | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
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.
|
| | | |
| | | |
| | | |
| | | | |
Fixes #22398.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
|/ / /
| | |
| | |
| | |
| | | |
- It adds lot of warnings while running the tests. After https://github.com/rails/rails/commit/451437c6f57e66cc7586ec966e530493927098c7 it is not needed.
- Added reader method with deprecation warning for backward compatibility.
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
jeremywadsack/use_transactional_fixtures_all_databases
Use notification to ensure that lazy-loaded model classes have transactions
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
loaded model classes have their connections wrapped in transactions.
See #17776
In Rails 4 config.eager_load was changed to false in the test environment. This
means that model classes that connect to alternate databases with
establish_connection are not loaded at start up. If use_transactional_fixtures
is enabled, transactions are wrapped around the connections that have been
established only at the start of the test suite. So model classes loaded later
don't have transactions causing data created in the alternate database not to
be removed.
This change resolves that by creating a new connection.active_record
notification that gets fired whenever a connection is established. I then added
a subscriber after we set up transactions in the test environment to listen for
additional connections and wrap those in transactions as well.
|
|\ \ \ \
| | | | |
| | | | | |
Add newline between each migration in `structure.sql`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Keeps schema migration inserts as a single commit, so we still get all of the
benefits of https://github.com/rails/rails/commit/42dd2336b31a8d98776d039a2b9fd7f834156a78,
but allows for easier git diff-ing. Fixes #25504.
|
|/ / / / |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We are setting a limit unconditionally just below,
which overrides any existing one anyway.
|
|/ / / |
|