- 13 7月, 2017 1 次提交
-
-
由 Ryuta Kamizono 提交于
Since 07e5301e, `Relation#first` will order by primary key if no order is defined.
-
- 08 7月, 2017 3 次提交
-
-
由 pdebelak 提交于
The uuid validation regex was allowing uuids to have a single leading curly brace or single trailing curly brace. Saving with such a uuid would cause Postgres to generate an exception even though the record seemed valid. With this change, the regex requires both a leading *and* a trailing curly brace or neither to be valid.
-
由 Dennis Taylor 提交于
-
由 Dennis Taylor 提交于
-
- 07 7月, 2017 2 次提交
-
-
由 Ryuta Kamizono 提交于
Since MariaDB 10.2.5, `information_schema` supports Virtual Columns. Fixes #29670.
-
由 Dennis Taylor 提交于
Whoops.
-
- 06 7月, 2017 4 次提交
-
-
由 Eugene Kenny 提交于
The `find_each`, `find_in_batches` and `in_batches` APIs usually operate on large numbers of records, where it's preferable not to load them all into memory at once. If the query cache is enabled, it will hold onto the query results until the end of the execution context (request/job), which means the memory used is still proportional to the total number of records. These queries are typically not repeated, so the query cache isn't desirable here.
-
由 Dennis Taylor 提交于
-
由 Dennis Taylor 提交于
The AbstractAdapter will translate all StandardErrors generated during the course of a query into ActiveRecord::StatementInvalids. Unfortunately, it'll also mangle non-database-related errors generated in ActiveSupport::Notification callbacks after the query has successfully completed. This should prevent it from translating errors from ActiveSupport::Notifications.
-
由 Lisa Ugray 提交于
`ActiveModel::Type::DateTime#serialize` should return a `Time` object so that finding by a datetime column works correctly.
-
- 04 7月, 2017 2 次提交
-
-
由 Ryuta Kamizono 提交于
Fixes #28324.
-
由 Ryuta Kamizono 提交于
-
- 02 7月, 2017 6 次提交
-
-
由 Ryuta Kamizono 提交于
It is covered by following assertion.
-
由 Akira Matsuda 提交于
-
由 eileencodes 提交于
Let's say you have a nested transaction and both records are saved. Before the outer transaction closes, a rollback is performed. Previously the record in the outer transaction would get marked as not persisted but the inner transaction would get persisted. ```ruby Post.transaction do post_one.save # will get rolled back Post.transaction(requires_new: true) do post_two.save # incorrectly remains marked as persisted end raise ActiveRecord::Rollback end ``` To fix this the PR changes transaction handling to have the child transaction ask the parent how the records should be marked. When there are child transactions, it will always be a SavpointTransaction because the stack isn't empty. From there we pass the parent_transaction to the child SavepointTransaction where we add the children to the parent so the parent can mark the inner transaction as rolledback and thus mark the record as not persisted. `update_attributes_from_transaction_state` uses the `completed?` check to correctly mark all the transactions as rolledback and the inner record as not persisted. ```ruby Post.transaction do post_one.save # will get rolled back Post.transaction(requires_new: true) do post_two.save # with new behavior, correctly marked as not persisted on rollback end raise ActiveRecord::Rollback end ``` Fixes #29320
-
由 eileencodes 提交于
`set_state` was directly setting the transaction state instance variable. It's better to set the state via specific methods (`rollback!` and `commit!` respectively. While undocumented and untested, it's possible someone is using `set_state` in their app or gem so I've added a deprecation notice to it. No where in the app do we use `nullify!` but I wanted to keep existing behavior while replacing the method with a better pattern.
-
由 Ryuta Kamizono 提交于
Since #29540, `# frozen_string_literal: true` included original migration files.
-
由 Matthew Draper 提交于
This reverts commit 3420a145, reversing changes made to afb66a5a.
-
- 01 7月, 2017 1 次提交
-
-
由 Kir Shatrov 提交于
-
- 30 6月, 2017 1 次提交
-
-
由 Ryuta Kamizono 提交于
Fixes #29627.
-
- 29 6月, 2017 10 次提交
-
-
由 Ryuta Kamizono 提交于
Active Record doesn't rely delegating to `arel` in the internal since 425f2cac. The delegation is a lower priority than delegating to `klass`, so it is pretty unclear which method is delegated to `arel`. For example, `bind_values` method was removed at b06f64c3 (a series of changes https://github.com/rails/rails/compare/79f71d3...b06f64c). But a relation still could respond to the method because `arel` also have the same named method (#28976). Removing the delegation will achieve predictable behavior.
-
由 Ryuta Kamizono 提交于
`test_cache_is_available_when_using_a_not_connected_connection` is always failed if running only the test since #29609. ``` % ARCONN=mysql2 be ruby -w -Itest test/cases/query_cache_test.rb -n test_cache_is_available_when_using_a_not_connected_connection Using mysql2 Run options: -n test_cache_is_available_when_using_a_not_connected_connection --seed 15043 F Finished in 0.070519s, 14.1806 runs/s, 28.3612 assertions/s. 1) Failure: QueryCacheTest#test_cache_is_available_when_using_a_not_connected_connection [test/cases/query_cache_test.rb:336]: 2 instead of 1 queries were executed. Queries: SELECT `tasks`.* FROM `tasks` WHERE `tasks`.`id` = ? LIMIT ? SET NAMES utf8 COLLATE utf8_unicode_ci, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483. Expected: 1 Actual: 2 1 runs, 2 assertions, 1 failures, 0 errors, 0 skips ``` This failure is due to `LogSubscriber` will use not connected `ActiveRecord::Base.connection` even if `Task.connection` is connected. I fixed to always pass `type_casted_binds` to log subscriber to avoid the issue.
-
由 Ryuta Kamizono 提交于
This regression was caused by #23004. If STI subclass is using scoping in parent class scoping, `current_scope` in subclass is never restored. I fixed to restore `current_scope` to previous value correctly.
-
由 Ryuta Kamizono 提交于
`aliased_table_name` in `Association` was added at a3502c41. `aliased_table_name` in `JoinDependency` (added at 55854c41) is used, but it looks like that added one in `Association` is never used from the beginning.
-
由 Ryuta Kamizono 提交于
The delegation was needed since passing `relation` with `relation.bound_attributes`. It should use `relation.arel` in that case.
-
由 Ryuta Kamizono 提交于
`test_middleware_caches` also failed same as #29600. https://travis-ci.org/rails/rails/jobs/248017174#L487-L489
-
由 Ryuta Kamizono 提交于
-
由 Tsukasa OISHI 提交于
ActiveRecord query cache is available when a connection is connected. Therefore, query cache is unavailable when entering the ActiveRecord::Base.cache block without being connected. ```ruby ActiveRecord::Base.cache do Task.find(1) # access to database. Task.find(1) # access to database. unavailable query cache end ``` If we use query cache with batch script etc, we need to connect before that. ```ruby Task.connection ActiveRecord::Base.cache do Task.find(1) # access to database. Task.find(1) # available query cache end ``` Before version 3.1, query cache had been enabled if a configuration was set up. In order to solve the `DATABASE_URL` issue(#8074), ActiveRecord has checked whether a connection is connected or not. Today, ActiveRecord.configurations respect `DATABASE_URL`. https://github.com/rails/rails/blob/master/activerecord/lib/active_record/core.rb#L46
-
由 Ryuta Kamizono 提交于
Passing `klass.connection` is redundant because `AssociationScope` is passed an association itself and an association has `klass`.
-
由 Ryuta Kamizono 提交于
Unscoping `default_scope` in associations has already supported (#17360 for preloading, c9cf8b8d for eager loading). Fixes #20679. Closes #16531.
-
- 28 6月, 2017 3 次提交
-
-
由 Ryuta Kamizono 提交于
And use `assert_same` instead of `assert_equal` and tiny fix assert message s/#reload/#reset/. Follow up of #29511.
-
由 Tobias Kraze 提交于
If a record was built on a HasManyThroughAssociation, then removed, and then the record was saved, the removed record would be created anyways.
-
由 Ryuta Kamizono 提交于
`test_exceptional_middleware_clears_and_disables_cache_on_error` in postgresql adapter sometime fails recently. Show the query cache keys to investigte the cause. https://travis-ci.org/rails/rails/jobs/246467252#L490-L493
-
- 26 6月, 2017 1 次提交
-
-
由 Ryuta Kamizono 提交于
-
- 22 6月, 2017 4 次提交
-
-
由 Nick Rivadeneira 提交于
-
由 yuuji.yaginuma 提交于
This fixes the following warnings: ``` activerecord/test/cases/relation_test.rb:231: warning: assigned but unused variable - authors_with_commented_posts ```
-
由 John Hawthorn 提交于
-
由 Edouard CHIN 提交于
- On Mysql, some command line options that affect option-file handling such as `--no-defaults` have to be passed before any other options - Modified rails to pass them right after the `mysql` command - Ref https://dev.mysql.com/doc/refman/5.7/en/option-file-options.html and https://bugs.mysql.com/bug.php?id=83386 - Ref #27437
-
- 21 6月, 2017 2 次提交
-
-
由 Maxime Lapointe 提交于
Doing `Author.joins(:posts).merge(Post.joins(:comments))` does this `SELECT ... INNER JOIN posts ON... LEFT OUTER JOIN comments ON...` instead of doing `SELECT ... INNER JOIN posts ON... INNER JOIN comments ON...`. This behavior is unexpected and makes little sense as, basically, doing `Post.joins(:comments)` means I want posts that have comments. Turning it to a LEFT JOIN means I want posts and join the comments data, if any. We can see this problem directly in the existing tests. The test_relation_merging_with_merged_joins_as_symbols only does joins from posts to comments to ratings while the ratings fixture isn't loaded, but the count is non-zero.
-
由 John Hawthorn 提交于
The `@offsets` cache is used by FinderMethods to cache records found by find_nth. This cache is cleared in AR::Relation#reset, but not in CollectionProxy#reset or CollectionProxy#reload. Because of this, since #29098, calling #first/#find_nth/etc after calling #reload or #reset on an association could return a stale record. This is an issue both when the full association target is loaded and when the item is loaded in #find_nth. This commit solves the problem by clearing the `@offsets` cache in CollectionProxy#reset and CollectionProxy#reload.
-