aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #25941 from kamipo/finder_methods_uses_load_targetRafael França2016-07-283-5/+7
|\ | | | | `FinderMethods` uses `records` (`load_target`) when `loaded?` is true
| * `FinderMethods` uses `records` (`load_target`) when `loaded?` is trueRyuta Kamizono2016-07-283-5/+7
| |
* | Merge pull request #25940 from kamipo/fix_collection_proxy_loadRafael França2016-07-282-0/+14
|\ \ | | | | | | Fix to `CollectionProxy#load` does `load_target`
| * | Fix to `CollectionProxy#load` does `load_target`Ryuta Kamizono2016-07-252-0/+14
| |/
* | Merge pull request #25937 from kamipo/remove_prepare_binds_for_databaseRafael França2016-07-284-8/+4
|\ \ | | | | | | Remove `prepare_binds_for_database` internal method
| * | Remove `prepare_binds_for_database` internal methodRyuta Kamizono2016-07-284-8/+4
| | | | | | | | | | | | To avoid relying on the connection adapter for type casting binds.
* | | Merge pull request #25340 from kamipo/prevent_table_comment_queryRafael França2016-07-283-7/+17
|\ \ \ | | | | | | | | Prevent `table_comment` query if a table doesn't have a comment
| * | | Prevent `table_comment` query if a table doesn't have a commentRyuta Kamizono2016-06-103-7/+17
| | | |
* | | | Merge pull request #25974 from ↵Rafael França2016-07-281-2/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kamipo/avoid_calling_current_database_in_table_comment Avoid calling `current_database` in `table_comment`
| * | | | Avoid calling `current_database` in `table_comment`Ryuta Kamizono2016-07-281-2/+4
| | |/ / | |/| | | | | | | | | | | | | | | | | | `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.
* / | | `@quoted_{column,table}_names` should cache a frozen stringRyuta Kamizono2016-07-283-5/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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`!!!!!!" ```
* | | Merge pull request #25767 from ↵Rafael França2016-07-274-3/+20
|\ \ \ | | | | | | | | | | | | | | | | kamipo/association_name_is_the_same_as_join_table_name Correctly return `associated_table` when `associated_with?` is true
| * | | Correctly return `associated_table` when `associated_with?` is trueRyuta Kamizono2016-07-104-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `AssociationQueryHandler` requires `association` initialized `TableMetadata` even if `table_name == arel_table.name`. Fixes #25689.
* | | | Add the TABLE_SCHEMA condition to the SELECT statement in table_comment (#25945)Takeshi AKIMA2016-07-272-1/+6
| | | | | | | | | | | | [Rafael Mendonça França + Takeshi AKIMA]
* | | | Merge pull request #25702 from k0kubun/joins-circular-referenceSean Griffin2016-07-272-1/+10
|\ \ \ \ | | | | | | | | | | Remove circular join references in join_dependency
| * | | | Remove circular join references in join_dependencyTakashi Kokubun2016-07-282-1/+10
| | | | | | | | | | | | | | | | | | | | Fixes #25653.
* | | | | Merge pull request #25938 from ↵Rafael França2016-07-272-10/+10
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | kamipo/decouple_statement_cache_from_connection_adapter Decouple statement cache from connection adapter
| * | | | Decouple statement cache from connection adapterRyuta Kamizono2016-07-242-10/+10
| | |_|/ | |/| | | | | | | | | | | | | | | | | | `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.
* | | | Merge pull request #25958 from kamipo/should_be_target_loadedYves Senn2016-07-271-0/+38
|\ \ \ \ | | | | | | | | | | Add an assertion to the tests that should be loaded the target.
| * | | | Add an assertion to the tests that should be loaded the target.Ryuta Kamizono2016-07-271-0/+38
| | | | | | | | | | | | | | | | | | | | These test cases tests exactly mutating loaded target.
* | | | | Merge pull request #25408 from kamipo/should_not_reuse_quoted_trueYves Senn2016-07-273-5/+21
|\ \ \ \ \ | | | | | | | | | | | | Quoting booleans should return a frozen string
| * | | | | Quoting booleans should return a frozen stringRyuta Kamizono2016-07-273-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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" ```
* | | | | | Merge pull request #25523 from kamipo/extract_quoted_binds_type_casted_bindsSean Griffin2016-07-264-6/+10
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Extract `type_casted_binds` method
| * | | | | Extract `type_casted_binds` methodRyuta Kamizono2016-07-264-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because `type_cast` against `binds` always requires `attr.value_for_database` and this pattern appears frequently.
* | | | | | Merge pull request #25929 from kamipo/load_target_is_public_methodSantiago Pastorino2016-07-263-7/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | `load_target` is a public method
| * | | | | | `load_target` is a public methodRyuta Kamizono2016-07-233-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `send` is unnecessary.
* | | | | | | Make `force_signal37_to_load_all_clients_of_firm` to privateRyuta Kamizono2016-07-261-4/+6
| |_|/ / / / |/| | | | | | | | | | | | | | | | | This is not a test case.
* | | | | | Whoops, forgot the changelog entry for the previous commitSean Griffin2016-07-251-0/+5
| | | | | |
* | | | | | Correct the behavior of virtual attributes on models loaded from the dbSean Griffin2016-07-256-12/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | adds missing requiresXavier Noria2016-07-2411-1/+14
| |_|/ / / |/| | | |
* | | | | removes spurious lineXavier Noria2016-07-241-1/+0
| | | | |
* | | | | give some love to this test fileXavier Noria2016-07-231-151/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | systematic revision of =~ usage in ARXavier Noria2016-07-2321-29/+34
|/ / / / | | | | | | | | | | | | | | | | Where appropriatei, prefer the more concise Regexp#match?, String#include?, String#start_with?, or String#end_with?
* | | | Remove tab chars before commands to be runÉtienne Barrié2016-07-201-4/+4
| | | |
* | | | Merge pull request #25885 from kamipo/fix_explain_logging_with_bindsRafael França2016-07-204-17/+28
|\ \ \ \ | | | | | | | | | | Fix explain logging with binds
| * | | | Fix explain logging with bindsRyuta Kamizono2016-07-204-17/+28
| |/ / / | | | | | | | | | | | | `binds` is an array of a query attribute since Active Record 5.0.
* | | | Merge pull request #25786 from ↵Rafael França2016-07-202-5/+21
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kamipo/add_exists_and_update_all_to_collection_proxy Add `exists?` and `update_all` to `CollectionProxy` for respects an association scope
| * | | | Add `exists?` and `update_all` to `CollectionProxy` for respects an ↵Ryuta Kamizono2016-07-202-5/+21
| |/ / / | | | | | | | | | | | | | | | | | | | | association scope Fixes #25732.
* | | | Merge pull request #25897 from ↵Rafael França2016-07-202-14/+1
|\ \ \ \ | |/ / / |/| | | | | | | | | | | yahonda/remove_set_date_columns_and_modify_attributes_test Remove Oracle specific tests based on deprecated behaviors
| * | | Oracle TIMESTAMP sql type is associated with Rails `DateTime` type nowYasuo Honda2016-07-202-14/+1
| | | | | | | | | | | | | | | | | | | | | | | | - 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
* | | | Merge pull request #25578 from ↵Rafael França2016-07-207-20/+39
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kamipo/move_warning_about_composite_primary_key_to_attribute_methods_primary_key Move the warning about composite primary key to `AttributeMethods::PrimaryKey`
| * | | | Move the warning about composite primary key to `AttributeMethods::PrimaryKey`Ryuta Kamizono2016-07-027-20/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge pull request #25889 from kamipo/do_not_dup_binds_in_to_sqlRafael França2016-07-201-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Do not `binds.dup` in `connection#to_sql`
| * | | | | Do not `binds.dup` in `connection#to_sql`Ryuta Kamizono2016-07-191-1/+1
| | |/ / / | |/| | | | | | | | | | | | | Because `connection#to_sql` does not mutate `binds`.
* | | | | Merge pull request #25888 from kamipo/use_conn_to_sql_for_construct_sqlRafael França2016-07-201-10/+5
|\ \ \ \ \ | | | | | | | | | | | | Use `connection#to_sql` for construct an SQL
| * | | | | Use `connection#to_sql` for construct an SQLRyuta Kamizono2016-07-191-10/+5
| |/ / / /
* | | | | Merge pull request #25849 from suginoy/fix_merge_in_scopeRafael Mendonça França2016-07-203-1/+12
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Fix the calling `merge` method at first in a scope
| * | | | | Fix the calling `merge` method at first in a scopesuginoy2016-07-193-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ```
* | | | | | Merge pull request #25828 from bogdanvlviv/ref_default_sequence_nameRafael França2016-07-202-4/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Refactored method `ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#default_sequence_name`. Refactored test `HasManyAssociationsTest#test_do_not_call_callbacks_for_delete_all`.
| * | | | | | Refactored test ↵bogdanvlviv2016-07-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `HasManyAssociationsTest#test_do_not_call_callbacks_for_delete_all`