- 07 8月, 2016 3 次提交
-
-
由 Xavier Noria 提交于
-
由 Xavier Noria 提交于
-
由 Xavier Noria 提交于
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
-
- 05 8月, 2016 3 次提交
-
-
由 Sean Griffin 提交于
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 36e9be85 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
-
由 David Heinemeier Hansson 提交于
-
由 David Heinemeier Hansson 提交于
-
- 04 8月, 2016 1 次提交
-
-
由 Ryuta Kamizono 提交于
`insert`, `update`, `delete`, and `exec_query` have a default value against `name` and `binds`. But `exec_insert`, `exec_update`, and `exec_delete` not have. It is an inconvenience and inconsistent.
-
- 03 8月, 2016 2 次提交
-
-
由 Ryuta Kamizono 提交于
Because `scope` (`target_scope`) is a `AssociationRelation`. `AssociationRelation` handles `set_inverse_instance`. https://github.com/rails/rails/blob/v5.0.0/activerecord/lib/active_record/association_relation.rb#L31-L33 See also #26022.
-
由 Arthur Neves 提交于
-
- 02 8月, 2016 2 次提交
-
-
由 Ryuta Kamizono 提交于
Originally `TransactionSerializationError` was `StatementInvalid` in Rails 5.0. It should keep backward compatibility.
-
由 Ryuta Kamizono 提交于
Because `scope` (`target_scope`) is a `AssociationRelation`. `AssociationRelation` handles `set_inverse_instance`. https://github.com/rails/rails/blob/v5.0.0/activerecord/lib/active_record/association_relation.rb#L31-L33
-
- 31 7月, 2016 1 次提交
-
-
由 Ryuta Kamizono 提交于
Fixes #25892.
-
- 29 7月, 2016 1 次提交
-
-
由 Ryuta Kamizono 提交于
-
- 28 7月, 2016 6 次提交
-
-
由 Ryuta Kamizono 提交于
`current_database` executes a query and `table_comment` is called to all tables even if a table does not have a comment. Using `current_database` increases extra queries.
-
由 Ryuta Kamizono 提交于
Caching a mutable string causes the following issue. ``` Loading development environment (Rails 5.1.0.alpha) irb(main):001:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!' => "`foo`!!" irb(main):002:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!' => "`foo`!!!!" irb(main):003:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!' => "`foo`!!!!!!" ```
-
由 Ryuta Kamizono 提交于
To avoid relying on the connection adapter for type casting binds.
-
由 Ryuta Kamizono 提交于
-
由 Takeshi AKIMA 提交于
[Rafael Mendonça França + Takeshi AKIMA]
-
由 Takashi Kokubun 提交于
Fixes #25653.
-
- 26 7月, 2016 2 次提交
-
-
由 Ryuta Kamizono 提交于
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" ```
-
由 Ryuta Kamizono 提交于
Because `type_cast` against `binds` always requires `attr.value_for_database` and this pattern appears frequently.
-
- 25 7月, 2016 2 次提交
-
-
由 Sean Griffin 提交于
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
-
由 Xavier Noria 提交于
-
- 24 7月, 2016 3 次提交
-
-
由 Ryuta Kamizono 提交于
-
由 Ryuta Kamizono 提交于
`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.
-
由 Xavier Noria 提交于
Where appropriatei, prefer the more concise Regexp#match?, String#include?, String#start_with?, or String#end_with?
-
- 23 7月, 2016 1 次提交
-
-
由 Ryuta Kamizono 提交于
`send` is unnecessary.
-
- 21 7月, 2016 1 次提交
-
-
由 Étienne Barrié 提交于
-
- 20 7月, 2016 2 次提交
-
-
由 Ryuta Kamizono 提交于
`binds` is an array of a query attribute since Active Record 5.0.
-
由 Ryuta Kamizono 提交于
Fixes #25732.
-
- 19 7月, 2016 6 次提交
-
-
由 alpaca-tc 提交于
-
由 Ryuta Kamizono 提交于
Because `connection#to_sql` does not mutate `binds`.
-
由 Ryuta Kamizono 提交于
-
由 suginoy 提交于
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 ```
-
由 Ryuta Kamizono 提交于
Fixes #22398.
-
- 18 7月, 2016 4 次提交
-
-
由 Alex Kitchens 提交于
-
由 Xavier Noria 提交于
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 210012f6.
-
由 Prathamesh Sonpatki 提交于
- 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.
-
由 bogdanvlviv 提交于
Refactored method `ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#default_sequence_name`
-