aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Specify `table.name` only when `scope.table` and `table` are different (#29058)Ryuta Kamizono2017-08-112-4/+13
| | | Fixes #29045.
* Fix RDoc formatting: `+` doesn't work with `@`ohbarye2017-08-112-6/+6
| | | | | | | | | | | | | | refs: https://github.com/rails/rails/pull/30161 ``` $ echo "+@size+" | rdoc --pipe <p>+@size+</p> $ echo "<tt>@size</tt>" | rdoc --pipe <p><code>@size</code></p> ``` [ci skip]
* Merge pull request #30183 from kamipo/reaper_run_after_conn_pool_initializedMatthew Draper2017-08-111-2/+3
|\ | | | | Start `@reaper.run` after connection pool initialized
| * Start `@reaper.run` after connection pool initializedRyuta Kamizono2017-08-111-2/+3
| | | | | | | | | | | | | | Otherwise `ConnectionPool#reap` may run before `@connections` has initialized. https://travis-ci.org/rails/rails/jobs/263037427#L888-L890
* | Merge pull request #30152 from bogdanvlviv/fix_random_ci_failureMatthew Draper2017-08-101-1/+1
|\ \ | | | | | | Fix random CI failure due to non-deterministic sorting order
| * | Fix random CI failure due to non-deterministic sorting orderbogdanvlviv2017-08-091-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` rails/activerecord$ bundle exec rake postgresql:test --verbose TESTOPTS="--seed=36062" Failure: AssociationsJoinModelTest#test_has_many_through_polymorphic_has_one [/home/travis/build/rails/rails/activerecord/test/cases/associations/join_model_test.rb:407]: --- expected +++ actual @@ -1 +1 @@ -[ #<Tagging id: 1, tag_id: 1, super_tag_id: 2, taggable_type: "Post", taggable_id: 1, comment: nil>, #<Tagging id: 2, tag_id: 1, super_tag_id: nil, taggable_type: "Post", taggable_id: 2, comment: nil> ] +#<ActiveRecord::Associations::CollectionProxy [ #<Tagging id: 2, tag_id: 1, super_tag_id: nil, taggable_type: "Post", taggable_id: 2, comment: nil>, #<Tagging id: 1, tag_id: 1, super_tag_id: 2, taggable_type: "Post", taggable_id: 1, comment: nil> ]> ```
* / Fix random CI failure DirtyTest:bogdanvlviv2017-08-091-4/+3
|/ | | | | | | | | | | | ``` rails/activerecord$ bundle exec rake postgresql:test TESTOPTS="--seed=26536" ..(compressed)....F Failure: DirtyTest#test_save_should_not_save_serialized_attribute_with_partial_writes_if_not_present [/home/travis/build/rails/rails/activerecord/test/cases/dirty_test.rb:473]: Expected nil to not be nil. ```
* Merge pull request #30108 from yui-knk/require_concurrent_mapRafael França2017-08-081-0/+2
|\ | | | | Add missed `require`
| * Add missed `require`yui-knk2017-08-071-0/+2
| | | | | | | | | | `ActiveRecord::ConnectionAdapters::QueryCache::ConnectionPoolConfiguration` depends on `Concurrent::Map`.
* | Merge pull request #30142 from ↵Sean Griffin2017-08-081-4/+12
|\ \ | | | | | | | | | | | | yukideluxe/add-missing-bit-reload-associations-docs add missing collection.reload documentation [ci skip]
| * | add missing collection.reload documentation [ci skip]Julia López2017-08-081-4/+12
| | |
* | | Merge pull request #30133 from kamipo/fix_random_ci_failureRafael França2017-08-081-1/+1
|\ \ \ | | | | | | | | Fix random CI failure due to non-deterministic sorting order
| * | | Fix random CI failure due to non-deterministic sorting orderRyuta Kamizono2017-08-081-1/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It should be sorted to be deterministic executed result. ``` % bundle exec rake test_postgresql --verbose TESTOPTS="--seed=52812" (snip) Failure: HasManyThroughAssociationsTest#test_has_many_association_through_a_has_many_association_to_self [/Users/kamipo/src/github.com/rails/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb:820]: --- expected +++ actual @@ -1 +1 @@ -[#<Person id: 85, primary_contact_id: 84, gender: "M", number1_fan_id: 1, lock_version: 0, comments: nil, followers_count: 0, friends_too_count: 0, best_friend_id: nil, best_friend_of_id: nil, insures: 0, born_at: nil, created_at: "2017-08-08 07:33:52", updated_at: "2017-08-08 07:33:52", first_name: "John">, #<Person id: 1, primary_contact_id: 2, gender: "M", number1_fan_id: 3, lock_version: 0, comments: nil, followers_count: 1, friends_too_count: 1, best_friend_id: nil, best_friend_of_id: nil, insures: 0, born_at: nil, created_at: "2017-08-08 07:33:49", updated_at: "2017-08-08 07:33:49", first_name: "Michael">, #<Person id: 3, primary_contact_id: 2, gender: "F", number1_fan_id: 1, lock_version: 0, comments: nil, followers_count: 1, friends_too_count: 1, best_friend_id: nil, best_friend_of_id: nil, insures: 0, born_at: nil, created_at: "2017-08-08 07:33:49", updated_at: "2017-08-08 07:33:49", first_name: "Susan">] +#<ActiveRecord::Associations::CollectionProxy [#<Person id: 1, primary_contact_id: 2, gender: "M", number1_fan_id: 3, lock_version: 0, comments: nil, followers_count: 1, friends_too_count: 1, best_friend_id: nil, best_friend_of_id: nil, insures: 0, born_at: nil, created_at: "2017-08-08 07:33:49", updated_at: "2017-08-08 07:33:49", first_name: "Michael">, #<Person id: 3, primary_contact_id: 2, gender: "F", number1_fan_id: 1, lock_version: 0, comments: nil, followers_count: 1, friends_too_count: 1, best_friend_id: nil, best_friend_of_id: nil, insures: 0, born_at: nil, created_at: "2017-08-08 07:33:49", updated_at: "2017-08-08 07:33:49", first_name: "Susan">, #<Person id: 85, primary_contact_id: 84, gender: "M", number1_fan_id: 1, lock_version: 0, comments: nil, followers_count: 0, friends_too_count: 0, best_friend_id: nil, best_friend_of_id: nil, insures: 0, born_at: nil, created_at: "2017-08-08 07:33:52", updated_at: "2017-08-08 07:33:52", first_name: "John">]> ```
* | | Document `ActiveRecord::AttributeMethods::Dirty`Sean Griffin2017-08-081-9/+9
| |/ |/| | | | | | | This module has behavior that is not present in `ActiveModel::Dirty`, which is intended to be public API.
* | Merge pull request #30125 from yukideluxe/add-reload-to-associations-docsRafael França2017-08-081-0/+8
|\ \ | | | | | | add reload_association to documentation
| * | add reload_association to documentation [ci skip]Julia López2017-08-071-0/+8
| |/
* / [ci skip] Postgres --> PostgreSQLRyuta Kamizono2017-08-083-3/+3
|/
* Lint activerecord/CHANGELOG.mdJon Moss2017-08-061-4/+4
| | | | | | Light grammar fixes, and added a few backticks. [ci skip]
* Merge pull request #29520 from kirs/serialize-vs-postgres-native-columnSean Griffin2017-08-043-0/+42
|\ | | | | Do not let use `serialize` on native JSON/array column
| * Do not let use `serialize` on native JSON/array columnKir Shatrov2017-08-043-0/+42
| |
* | Use `Concurrent::Map` than `Mutex` and `Mutex_m` for statement cachesRyuta Kamizono2017-08-042-10/+6
| | | | | | | | | | Statement caches are used as a concurrent map. It will more clarify to using `Concurrent::Map`.
* | Fix all rubocop violationsRafael Mendonça França2017-08-031-2/+2
| |
* | Passing `klass` to `StatementCache.new`Ryuta Kamizono2017-08-046-32/+31
| | | | | | | | | | | | Actually `StatementCache#execute` is always passed the same klass that the owner klass of the connection when the statement cache is created. So passing `klass` to `StatementCache.new` will make more DRY.
* | Merge pull request #30011 from guilherme/fix-migration-generator-special-casesSean Griffin2017-08-031-1/+1
|\ \ | | | | | | Handling add/remove to/from migration edge cases
| * | Handling add/remove to/from migration edge casesGuilherme Reis Campos2017-08-031-1/+1
| | | | | | | | | | | | Making sure the table name is parsed correctly when an add/remove column migration have 'from'/'to' in the table name.
* | | Merge pull request #29914 from ↵Matthew Draper2017-08-023-19/+30
|\ \ \ | | | | | | | | | | | | | | | | kamipo/relation_merger_should_not_fill_empty_values `Relation::Merger` should not fill `values` with empty values
| * | | `get_value` and `set_value` in `Relation` are no longer used externallyRyuta Kamizono2017-07-251-9/+10
| | | |
| * | | `Relation::Merger` should not fill `values` with empty valuesRyuta Kamizono2017-07-252-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently `Relation#merge` will almost fill `values` with empty values (e.g. `other.order_values` is always true, it should be `other.order_values.any?`). This means that `Relation#merge` always changes `values` even if actually `values` is nothing changed. This behavior will makes `Relation#empty_scope?` fragile. So `Relation#merge` should avoid unnecessary changes.
* | | | Merge pull request #29842 from kamipo/fix_find_by_with_rangeMatthew Draper2017-08-023-4/+12
|\ \ \ \ | | | | | | | | | | Fix `find_by` with range conditions
| * | | | Fix `find_by` with range conditionsRyuta Kamizono2017-07-203-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | `StatementCache` doesn't support range conditions. So we need to through the args to `FinderMethods#find_by` if range value is passed.
* | | | | Merge pull request #29271 from rails/unlock-minitestKasper Timm Hansen2017-08-0215-64/+83
|\ \ \ \ \ | | | | | | | | | | | | Unlock minitest for Rails' test suite
| * \ \ \ \ Merge remote-tracking branch 'origin/master' into unlock-minitestRafael Mendonça França2017-08-01684-1127/+2560
| |\ \ \ \ \
| * | | | | | Move `reset_pk_sequence!` test to `AdapterTestWithoutTransaction`yuuji.yaginuma2017-07-171-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If execute PostgreSQL test with specifying 53853 for seed, the following error will occur. ``` 1) Error: TransactionTest#test_restore_custom_primary_key_after_rollback: ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "movies_pkey" DETAIL: Key (movieid)=(2) already exists. : INSERT INTO "movies" ("name") VALUES ($1) RETURNING "movieid" ``` travis is here https://travis-ci.org/rails/rails/jobs/254095918 As with #29287, it seems like a problem that the value of primary key obtained from connection gets different. Therefore, fixed to execute that test within transaction.
| * | | | | | Reset column information after schema changedyuuji.yaginuma2017-07-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the following failures. https://travis-ci.org/rails/rails/jobs/253990014
| * | | | | | Merge pull request #29380 from ↵Kasper Timm Hansen2017-07-151-0/+4
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | y-yagi/insert_environment_value_to_table_before_check_environment Insert environment value to `InternalMetadata` table before check environment
| | * | | | | | Insert environment value to `InternalMetadata` after recreating the tableyuuji.yaginuma2017-06-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes `ActiveRecord::DatabaseTasksUtilsTask#test_raises_an_error_when_called_with_protected_environment` test fails. https://travis-ci.org/rails/rails/jobs/238861562 https://travis-ci.org/rails/rails/jobs/239950092 There seems to be an error because `environment` value is not exist. This is because did not set the environment after recreating the table in `SchemaMigrationsTest#test_initializes_internal_metadata_for_encoding_utf8mb4`. Therefore, we create value after the test to maintain the original state.
| * | | | | | | Stupid empty line added after merge.Kasper Timm Hansen2017-07-151-1/+0
| | | | | | | |
| * | | | | | | Merge branch 'master' into unlock-minitestKasper Timm Hansen2017-07-15152-1011/+1789
| |\ \ \ \ \ \ \
| * | | | | | | | Add teardown to reset_connection at MysqlTypeLookupTestYasuo Honda2017-06-071-0/+7
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to address `Mysql2BooleanTest#test_column_type_without_emulated_booleans` failure
| * | | | | | | Load schema before assertionyuuji.yaginuma2017-06-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, test fails because the load schema when pluck is executed. Steps to reproduce: ``` bin/test -a postgresql -w --seed 61689 test/cases/*test.rb -n "/^(?:InheritanceComputeTypeTest#(?:test_inheritance_new_with_subclass_as_default)|CalculationsTest#(?:test_pluck_loaded_relation))$/" # Running: .F Failure: CalculationsTest#test_pluck_loaded_relation [/home/yaginuma/program/rails/master_y_yagi/rails/activerecord/test/cases/calculations_test.rb:722]: 1 instead of 0 queries were executed. Queries: SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'companies' AND c.relkind IN ('r','v','m'). Expected: 0 Actual: 1 bin/test test/cases/calculations_test.rb:7 ```
| * | | | | | | Merge pull request #29341 from y-yagi/explicitly_clear_type_map_before_run_testMatthew Draper2017-06-042-10/+12
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Explicitly clear type map before run `test_only_reload_type_map_once_for_every_unknown_type`
| | * | | | | | | Explicitly clear type map before run ↵yuuji.yaginuma2017-06-032-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `test_only_reload_type_map_once_for_every_unknown_type` Currently, the following test fails. ``` bin/test -a sqlite3_mem --seed 37473 test/cases/relation_test.rb ``` This is due to reset connection in `test_respond_to_for_non_selected_element` postprocessing. This reset is added with #29332 for `test_only_reload_type_map_once_for_every_unknown_type`. Since the above test expects the type map to be empty at the time of test run, I think that it is better to empty the type map before test run.
| * | | | | | | | Reset the fixture cache after (re)loading the schemaMatthew Draper2017-06-031-0/+2
| |/ / / / / / /
| * | | | | | | Merge pull request #29332 from yahonda/unlock-minitest_unknown_type_fixRafael França2017-06-021-0/+5
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Clean up `type_map` at the end of test_respond_to_for_non_selected_element
| | * | | | | | | Clean up `type_map` at the end of test_respond_to_for_non_selected_elementYasuo Honda2017-06-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `test_only_reload_type_map_once_for_every_unknown_type` expects no one already registers unknown OID to `type_map`. However, `test_respond_to_for_non_selected_element` registers it and does not clean up it. Addresses #29331 at unlock-minitest branch
| * | | | | | | | Merge branch 'master' into unlock-minitestRafael Mendonça França2017-06-0245-293/+369
| |\ \ \ \ \ \ \ \ | | |/ / / / / / / | |/| | | | | | |
| * | | | | | | | Use existing class in PersistenceTest::SaveTestAlex Kitchens2017-06-011-21/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Creating a new class for widgets was causing failing tests because it clashed with other widget classes. This test does not need to create its own class, so I changed it to an existing class. ``` ARCONN=mysql2 bin/test --seed 25364 test/cases/*test.rb -n \ "/^(?:PrimaryKeyIntegerTest#(?:test_primary_key_with_serial_integer_are_automatically_numbered)|PersistenceTest::SaveTest#(?:test_save_touch_false))$/" ```
| * | | | | | | | Merge pull request #29287 from alexcameron89/fix-db-statement-test-48104Matthew Draper2017-06-011-0/+1
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Fix random minitest error: database_statements_test
| | * | | | | | | | Reset primary key sequence in FixturesResetPkSequenceTestsAlex Kitchens2017-05-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The primary key sequence for each test in FixturesResetPkSequenceTest is reset. The state in some of the FixturesResetPkSequenceTest tests are leaking, causing failurse in others. Using a seed of `48104`, the `FixturesResetPkSequenceTest#test_resets_to_min_pk_with_specified_pk_and_sequence` runs before the `DatabaseStatementsTest` tests, and the tests fail with duplicate primary key errors: ``` Run options: --seed 48104 -n "/^(?:FixturesResetPkSequenceTest#(?:test_resets_to_min_pk_with_specified_pk_and_sequence)|DatabaseStatementsTest#(?:test_create_should_return_the_inserted_id|test_exec_insert|test_insert_should_return_the_inserted_id))$/" .EEE 1) Error: DatabaseStatementsTest#test_exec_insert: ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "accounts_pkey" DETAIL: Key (id)=(2) already exists. 2) Error: DatabaseStatementsTest#test_create_should_return_the_inserted_id: ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "accounts_pkey" DETAIL: Key (id)=(3) already exists. 3) Error: DatabaseStatementsTest#test_insert_should_return_the_inserted_id: ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "accounts_pkey" DETAIL: Key (id)=(4) already exists. ```
| * | | | | | | | | Ensure fixtures are loaded for FoxyFixturesTestAlex Kitchens2017-05-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that the fixtures are properly loaded for FoxyFixturesTest When tests are randomized, FoxyFixturesTest often fails due to unloaded fixtures.