aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | Remove database specific sql statements from SQLCounterYasuo Honda2019-05-013-19/+7
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every database executes different type of sql statement to get metadata then `ActiveRecord::TestCase` ignores these database specific sql statements to make `assert_queries` or `assert_no_queries` work consistently. Connection adapter already labels these statement by setting "SCHEMA" argument, this pull request makes use of "SCHEMA" argument to ignore metadata queries. Here are the details of these changes: * PostgresqlConnectionTest Each of PostgresqlConnectionTest modified just executes corresponding methods https://github.com/rails/rails/blob/fef174f5c524edacbcad846d68400e7fe114a15a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb#L182-L195 ```ruby # Returns the current database encoding format. def encoding query_value("SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = current_database()", "SCHEMA") end # Returns the current database collation. def collation query_value("SELECT datcollate FROM pg_database WHERE datname = current_database()", "SCHEMA") end # Returns the current database ctype. def ctype query_value("SELECT datctype FROM pg_database WHERE datname = current_database()", "SCHEMA") end ``` * BulkAlterTableMigrationsTest mysql2 adapter executes `SHOW KEYS FROM ...` to see if there is an index already created as below. I think the main concerns of these tests are how each database adapter creates or drops indexes then ignoring `SHOW KEYS FROM` statement makes sense. https://github.com/rails/rails/blob/fef174f5c524edacbcad846d68400e7fe114a15a/activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb#L11 ```ruby execute_and_free("SHOW KEYS FROM #{quote_table_name(table_name)}", "SCHEMA") do |result| ``` * Temporary change not included in this commit to show which statements executed ```diff $ git diff diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb index 8e8ed494d9..df05f9bd16 100644 --- a/activerecord/test/cases/migration_test.rb +++ b/activerecord/test/cases/migration_test.rb @@ -854,7 +854,7 @@ def test_adding_indexes classname = ActiveRecord::Base.connection.class.name[/[^:]*$/] expected_query_count = { - "Mysql2Adapter" => 3, # Adding an index fires a query every time to check if an index already exists or not + "Mysql2Adapter" => 1, # Adding an index fires a query every time to check if an index already exists or not "PostgreSQLAdapter" => 2, }.fetch(classname) { raise "need an expected query count for #{classname}" @@ -886,7 +886,7 @@ def test_removing_index classname = ActiveRecord::Base.connection.class.name[/[^:]*$/] expected_query_count = { - "Mysql2Adapter" => 3, # Adding an index fires a query every time to check if an index already exists or not + "Mysql2Adapter" => 1, # Adding an index fires a query every time to check if an index already exists or not "PostgreSQLAdapter" => 2, }.fetch(classname) { raise "need an expected query count for #{classname}" $ ``` * Executed these modified tests ```ruby $ ARCONN=mysql2 bin/test test/cases/migration_test.rb -n /index/ Using mysql2 Run options: -n /index/ --seed 8462 F Failure: BulkAlterTableMigrationsTest#test_adding_indexes [/home/yahonda/git/rails/activerecord/test/cases/migration_test.rb:863]: 3 instead of 1 queries were executed. Queries: SHOW KEYS FROM `delete_me` SHOW KEYS FROM `delete_me` ALTER TABLE `delete_me` ADD UNIQUE INDEX `awesome_username_index` (`username`), ADD INDEX `index_delete_me_on_name_and_age` (`name`, `age`). Expected: 1 Actual: 3 bin/test test/cases/migration_test.rb:848 F Failure: BulkAlterTableMigrationsTest#test_removing_index [/home/yahonda/git/rails/activerecord/test/cases/migration_test.rb:895]: 3 instead of 1 queries were executed. Queries: SHOW KEYS FROM `delete_me` SHOW KEYS FROM `delete_me` ALTER TABLE `delete_me` DROP INDEX `index_delete_me_on_name`, ADD UNIQUE INDEX `new_name_index` (`name`). Expected: 1 Actual: 3 bin/test test/cases/migration_test.rb:879 .. Finished in 0.379245s, 10.5473 runs/s, 7.9105 assertions/s. 4 runs, 3 assertions, 2 failures, 0 errors, 0 skips $ ``` * ActiveRecord::ConnectionAdapters::Savepoints Left `self.ignored_sql` to ignore savepoint related statements because these SQL statements are not related "SCHEMA" ``` self.ignored_sql = [/^SAVEPOINT/, /^ROLLBACK TO SAVEPOINT/, /^RELEASE SAVEPOINT/] ``` https://github.com/rails/rails/blob/fef174f5c524edacbcad846d68400e7fe114a15a/activerecord/lib/active_record/connection_adapters/abstract/savepoints.rb#L10-L20 ```ruby def create_savepoint(name = current_savepoint_name) execute("SAVEPOINT #{name}") end def exec_rollback_to_savepoint(name = current_savepoint_name) execute("ROLLBACK TO SAVEPOINT #{name}") end def release_savepoint(name = current_savepoint_name) execute("RELEASE SAVEPOINT #{name}") end ```
* | | | | `@controller` may not be defined here, and if so, it causes a Ruby warningAkira Matsuda2019-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | e.g. via test-unit-rails' `run_setup`
* | | | | Merge pull request #36150 from rails/error-any-delegationAaron Patterson2019-04-302-1/+12
|\ \ \ \ \ | | | | | | | | | | | | any? should be delegated to the errors list
| * | | | | any? should be delegated to the errors listAaron Patterson2019-04-302-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | Otherwise we get deprecation warnings in the generated scaffold template files
* | | | | | Merge pull request #36148 from ksolo/update-event-duration-in-notificationsEileen M. Uchitelle2019-04-302-6/+5
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Revert changes to monotonic times
| * | | | | revert changes to monotonic timesKevin Solorio2019-04-302-6/+5
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change to monotonic times causes failures for applications where the subscribed block is expecting Time objects as described in this issue: https://github.com/rails/rails/issues/36145 The original PR (https://github.com/rails/rails/pull/35984) was concerned with errors on the cpu_time. Test was edited to reflect changes to initializer using 0 values instead of nil
* | | | | Merge pull request #36146 from carlesjove/remove_outdated_gem_from_guidesRyuta Kamizono2019-05-011-21/+0
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | [Guides] Remove dynamic_form gem reference in guides [ci skip]
| * | | | Remove dynamic_form gem references in guidesCarles Jove i Buxeda2019-04-301-21/+0
|/ / / / | | | | | | | | | | | | This gem has not been updated since April 2014 and 2 of the 4 methods it introduces have been broken since Rails 4
* | | | Merge pull request #36142 from kamipo/should_take_first_record_stateRyuta Kamizono2019-04-302-8/+11
|\ \ \ \ | |/ / / |/| | | Should take the record's state of first action in the transaction
| * | | Should take the record's state of first action in the transactionRyuta Kamizono2019-04-302-8/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the same id's records are saved and/or destroyed in the transaction, commit callbackes will only run for the first enrolled record. https://github.com/rails/rails/blob/a023e2180093ebc517a642aaf21f3c7241c67657/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb#L115-L119 The regression #36132 is caused due to #35920 changed the enrollment order that the first action's record will be enrolled to last in the transaction. We could not change the the enrollment order as long as someone depends on the enrollment order. Fixes #36132.
* | | | Merge pull request #36137 from prathamesh-sonpatki/action-mailer-release-notesAlex Kitchens2019-04-301-0/+33
|\ \ \ \ | |/ / / |/| | | Action Mailer release notes [ci skip]
| * | | Action Mailer release notes [ci skip]Prathamesh Sonpatki2019-04-301-0/+33
| | | |
* | | | Fix rubocop offencesRyuta Kamizono2019-04-302-3/+3
|/ / /
* | | Merge pull request #36130 from alexcameron89/add_action_view_rnप्रथमेश Sonpatki2019-04-301-0/+53
|\ \ \ | | | | | | | | [ci skip] Add 6.0 Release Notes for Action View
| * | | [ci skip] Add 6.0 Release Notes for Action ViewAlex Kitchens2019-04-291-0/+53
| | | | | | | | | | | | | | | | I've added release notes based off of the CHANGELOG for Action View.
* | | | Merge pull request #36136 from robinjfisher/patch-1Ryuta Kamizono2019-04-301-1/+1
|\ \ \ \ | | | | | | | | | | Fix incorrect url in guide [ci skip]
| * | | | Fix incorrect url in guide [ci skip]Robin Fisher2019-04-291-1/+1
|/ / / / | | | | | | | | The example functional test lists the 'create' route as article_url rather than articles_url
* | | | Extract `_raise_record_not_touched_error`Ryuta Kamizono2019-04-292-16/+13
| | | |
* | | | Merge pull request #36129 from okuramasafumi/improve-error-message-of-delegateRyuta Kamizono2019-04-291-1/+1
|\ \ \ \ | |/ / / |/| | | Improve error message of ActiveSupport delegate
| * | | Improve error message of ActiveSupport delegateokuramasafumi2019-04-291-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | ActiveSupport `delegate` has `to` option, but it's not a option hash anymore and now it's a keyword argument. When `to` argument is not given, it raises an ArgumentError but the message suggests supplying "options hash", which is now wrong. Now it's fixed to provide correct suggestion to supply a keyword argument.
* | | fixes typo in guide [ci skip]Xavier Noria2019-04-281-1/+1
| | |
* | | new config to opt-out from adding app directories to $LOAD_PATHXavier Noria2019-04-284-6/+40
| | |
* | | Merge pull request #36121 from alecclarke/update-model-generator-output-in-guideप्रथमेश Sonpatki2019-04-271-4/+7
|\ \ \ | | | | | | | | [ci skip] Update the guide's model generator output.
| * | | [ci skip] Update the guide's model generator output.Alec Clarke2019-04-271-4/+7
|/ / / | | | | | | | | | | | | | | | | | | The model generator code sample used in the command line guides was displaying an outdated output for the generator's usage. This change updates the sample to mirror what's currently output when running `$rails generate model`.
* | | Merge pull request #36120 from kamipo/should_maintain_join_typeRyuta Kamizono2019-04-276-17/+29
|\ \ \ | | | | | | | | Fix merging left_joins to maintain its own `join_type` context
| * | | Fix merging left_joins to maintain its own `join_type` contextRyuta Kamizono2019-04-276-17/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression for #35864. Usually, stashed joins (mainly eager loading) are performed as LEFT JOINs. But the case of merging joins/left_joins of different class, that (stashed) joins are performed as the same `join_type` as the parent context for now. Since #35864, both (joins/left_joins) stashed joins might be contained in `joins_values`, so each stashed joins should maintain its own `join_type` context. Fixes #36103.
* | | | Fallback to spawn instead of fork in jruby (#36111)Guilherme Mansur2019-04-261-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fallback to spawn instead of fork in jruby This commit: b342db6 introduced a `fork` fork when running the railties tests since this is not supported in jruby we fallback to using spawn. Fixes: https://github.com/rails/rails/issues/35900
* | | | Frozen truncate (#36109)Jordan Thomas2019-04-263-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add test asserting truncate returns unfrozen string * Ensure strings returned from truncate are not frozen This fixes an issue where strings too short to be truncated were returned unfrozen, where as long-enough strings were returned frozen. Now retuned strings will not be frozen whether or not the string returned was shortened. * Update changelog w/ new truncate behavior description [Jordan Thomas + Rafael Mendonça França]
* | | | Merge pull request #36107 from alexcameron89/add_more_release_notesप्रथमेश Sonpatki2019-04-261-0/+68
|\ \ \ \ | | | | | | | | | | Add 6.0 Release Notes for Action Pack
| * | | | [ci skip] Add 6.0 Release Notes for Action PackAlex Kitchens2019-04-261-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've gone through the CHANGELOG for Action Pack, pulled out anything that was backported, rephrased some of the descriptions and found their PR's/commits as links.
* | | | | Halve string allocations in S3 streaming and partial downloadsGeorge Claghorn2019-04-261-2/+2
| | | | | | | | | | | | | | | | | | | | See 19770d6.
* | | | | Merge pull request #36104 from prathamesh-sonpatki/bump-bootsnapKasper Timm Hansen2019-04-263-9/+9
|\ \ \ \ \ | |_|/ / / |/| | | | Bump bootsnap to a version with disables iseq_cache for Ruby 2.5
| * | | | Bump bootsnap to a version with disables iseq_cache for Ruby 2.5Prathamesh Sonpatki2019-04-263-9/+9
| | | | | | | | | | | | | | | | | | | | - Refs https://github.com/Shopify/bootsnap/pull/257
* | | | | Merge pull request #36098 from michaelrbock/patch-1Rafael França2019-04-251-2/+2
|\ \ \ \ \ | |_|/ / / |/| | | | Fixes grammar in comments on tag_name and tag_id
| * | | | Fixes grammar in comments on tag_name and tag_idMichael Bock2019-04-251-2/+2
| |/ / /
* | | | [ci skip] Get npm just the way they like itKasper Timm Hansen2019-04-251-1/+1
| | | |
* | | | [ci skip] Remove à la just like that.Kasper Timm Hansen2019-04-251-1/+2
| | | |
* | | | [ci skip] Documentation pass of upgrading guide.Kasper Timm Hansen2019-04-251-14/+14
|/ / /
* | | Update bug report templatesRyuta Kamizono2019-04-255-8/+8
| | | | | | | | | | | | Bump gem version to 6.0.0.rc1.
* | | Merge pull request #36090 from prathamesh-sonpatki/fix-yarn-lockRyuta Kamizono2019-04-251-0/+7
|\ \ \ | | | | | | | | Fix outdated yarn.lock
| * | | Fix outdated yarn.lockPrathamesh Sonpatki2019-04-251-0/+7
|/ / /
* | | Change the deprecation for Enumerating ActiveModel::Errors to Rails 6.1 ↵Abhay Nikam2019-04-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | instead of 6.0 (#36087) * Change the deprecation for Enumerating ActiveModel::Errors to Rails 6.1 instead of 6.0 * Changed the deprecation message for ActiveModel::Errors methods: slice, values, keys and to_xml
* | | Merge pull request #36086 from ↵Ryuta Kamizono2019-04-251-2/+25
|\ \ \ | | | | | | | | | | | | | | | | abhaynikam/35869-add-documentation-for-has-one-option Adds documentation for has_one touch option after #35869 [ci skip]
| * | | Adds documentation for has_one touch option after #35869 [ci skip]Abhay Nikam2019-04-251-2/+25
|/ / /
* | | Merge pull request #32313 from lulalala/model_error_as_objectRafael França2019-04-2422-230/+956
|\ \ \ | | | | | | | | Model error as object
| * | | Spec for display original raw type in detailslulalala2019-03-311-0/+18
| | | |
| * | | Set default array to detailslulalala2019-03-312-1/+15
| | | | | | | | | | | | | | | | maintaining behavior errors.details[:foo].any?
| * | | Fix messages[]= does not override valuelulalala2019-03-312-0/+9
| | | |
| * | | Freeze DeprecationHandling array and hashlulalala2019-03-311-13/+20
| | | |
| * | | Fix equality comparison raising error buglulalala2019-03-312-1/+8
| | | |