aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo in test nameSharang Dashputre2019-03-051-1/+1
|
* Merge pull request #35434 from matthewd/faster-isolated-arMatthew Draper2019-03-052-2/+56
|\ | | | | Copy the forking isolated test runner from railties
| * Clean up AR's isolated test runnerMatthew Draper2019-03-052-3/+21
| |
| * Copy the forking isolated test runner from railtiesMatthew Draper2019-03-051-2/+38
| | | | | | | | | | | | All the tests have a substantial chunk of identical setup effort (in cases/helper.rb); this makes isolated tests run much faster, without any change to the variety of how we load files.
* | Allow `truncate` for SQLite3 adapter and add `rails db:seed:replant` (#34779)Bogdan2019-03-0410-1/+334
| | | | | | | | | | | | | | | | | | | | | | | | | | * Add `ActiveRecord::Base.connection.truncate` for SQLite3 adapter. SQLite doesn't support `TRUNCATE TABLE`, but SQLite3 adapter can support `ActiveRecord::Base.connection.truncate` by using `DELETE FROM`. `DELETE` without `WHERE` uses "The Truncate Optimization", see https://www.sqlite.org/lang_delete.html. * Add `rails db:seed:replant` that truncates database tables and loads the seeds Closes #34765
* | Merge pull request #35469 from sharang-d/patch-2Vipul A M2019-03-041-1/+1
|\ \ | | | | | | Fix typo in CHANGELOG.md [ci skip]
| * | Fix typo in CHANGELOG.md [ci skip]Sharang Dashputre2019-03-041-1/+1
|/ /
* | Merge pull request #35350 from ↵Ryuta Kamizono2019-03-046-12/+86
|\ \ | | | | | | | | | | | | kamipo/deprecate_validate_uniqueness_mismatched_collation Deprecate mismatched collation comparison for uniquness validator
| * | Deprecate mismatched collation comparison for uniquness validatorRyuta Kamizono2019-03-046-12/+86
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In MySQL, the default collation is case insensitive. Since the uniqueness validator enforces case sensitive comparison by default, it frequently causes mismatched collation issues (performance, weird behavior, etc) to MySQL users. https://grosser.it/2009/12/11/validates_uniqness_of-mysql-slow/ https://github.com/rails/rails/issues/1399 https://github.com/rails/rails/pull/13465 https://github.com/gitlabhq/gitlabhq/commit/c1dddf8c7d947691729f6d64a8ea768b5c915855 https://github.com/huginn/huginn/pull/1330#discussion_r55152573 I'd like to deprecate the implicit default enforcing since I frequently experienced the problems in code reviews. Note that this change has no effect to sqlite3, postgresql, and oracle-enhanced adapters which are implemented as case sensitive by default, only affect to mysql2 adapter (I can take a work if sqlserver adapter will support Rails 6.0).
* | Merge pull request #35467 from ↵Kasper Timm Hansen2019-03-041-9/+9
|\ \ | | | | | | | | | | | | bogdanvlviv/move-changelog-entry-about-reselect-method Move changelog entry about `reselect` method to the section of the next release [ci skip]
| * | Move changelog entry about `reselect` method to the section of the next releasebogdanvlviv2019-03-041-9/+9
|/ / | | | | | | | | | | | | Fixes https://github.com/rails/rails/pull/33611#discussion_r261549790 Related to https://3.basecamp.com/3076981/buckets/24956/chats/12416418@1631552581 [ci skip]
* | Correctly escape ERB tagyuuji.yaginuma2019-03-041-1/+1
| | | | | | | | Ref: https://travis-ci.org/rails/rails/jobs/501220262#L1194
* | Add an example about how to load images under app/javascript/imagesGuillermo Iguaran2019-03-031-0/+8
| | | | | | Similarly to https://github.com/rails/webpacker/pull/1976
* | Merge pull request #35460 from abhaynikam/33611-follow-up-on-add-reselectRyuta Kamizono2019-03-044-2/+16
|\ \ | | | | | | Fixed reselect throwing NoMethodError on ActiveRecord.
| * | Fixed reselect throwing NoMethodError on ActiveRecord.Abhay Nikam2019-03-034-2/+16
| | |
* | | Merge pull request #35462 from yahonda/another_30_byte_limitGeorge Claghorn2019-03-032-14/+6
|\ \ \ | |/ / |/| | Remove unnecessary `current_adapter?(:OracleAdapter)` for index length
| * | Remove unnecessary `current_adapter?(:OracleAdapter)` for index lengthYasuo Honda2019-03-032-14/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up #35455, there are two more test cases unnecessary `if current_adapter?(:OracleAdapter)` ```ruby $ ARCONN=oracle bin/test test/cases/associations/eager_test.rb -n test_include_has_many_using_primary_key Using oracle Run options: -n test_include_has_many_using_primary_key --seed 62842 . Finished in 50.280024s, 0.0199 runs/s, 0.0398 assertions/s. 1 runs, 2 assertions, 0 failures, 0 errors, 0 skips $ ``` ``` $ ARCONN=oracle bin/test test/cases/migration/index_test.rb -n test_add_index Using oracle Run options: -n test_add_index --seed 52034 . Finished in 13.152620s, 0.0760 runs/s, 0.0000 assertions/s. 1 runs, 0 assertions, 0 failures, 0 errors, 0 skips $ ```
* | Merge pull request #35457 from yahonda/run_delte_all_testRyuta Kamizono2019-03-031-19/+17
|\ \ | | | | | | Oracle database can run `delete` with `order by` and`fetch first n rows only`
| * | Oracle database can run `delete` statement with `order by` and`fetch first n ↵Yasuo Honda2019-03-031-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rows only` Since https://github.com/rails/arel/pull/337 Oracle adapter uses better top N query using `fetch first n rows only`, which can remove this unless condition. * This commit passes with Oracle database ```ruby $ ARCONN=oracle bin/test test/cases/relation/delete_all_test.rb -n test_delete_all_with_order_and_limit_deletes_subset_only Using oracle Run options: -n test_delete_all_with_order_and_limit_deletes_subset_only --seed 1081 . Finished in 8.068626s, 0.1239 runs/s, 0.6197 assertions/s. 1 runs, 5 assertions, 0 failures, 0 errors, 0 skips $ ``` * SQL statement includes `ORDER BY` and `FETCH FIRST n ROWS ONLY` ```sql Post Destroy (12.5ms) DELETE FROM "POSTS" WHERE "POSTS"."ID" IN (SELECT "POSTS"."ID" FROM "POSTS" WHERE "POSTS"."AUTHOR_ID" = :a1 ORDER BY "POSTS"."ID" ASC FETCH FIRST :a2 ROWS ONLY) [["author_id", 1], ["LIMIT", 1]] ```
* | | Merge pull request #35456 from yahonda/rails_datetime_mapped_to_oracle_timestampRyuta Kamizono2019-03-031-12/+2
|\ \ \ | | | | | | | | Rails `DateTime` type is mapped to Oracle `TIMESTAMP` since Rails 5.0
| * | | Rails `DateTime` type is mapped to Oracle `TIMESTAMP` since Rails 5.0Yasuo Honda2019-03-031-12/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kind of reverting https://github.com/rails/rails/commit/3a1cbc5c3b3bcb2de4be6e4469bb87b99759dc59 ``` From: test/cases/date_test.rb @ line 26 : 21: 22: invalid_dates = [[2007, 11, 31], [1993, 2, 29], [2007, 2, 29]] 23: 24: valid_dates.each do |date_src| 25: topic = Topic.new("last_read(1i)" => date_src[0].to_s, "last_read(2i)" => date_src[1].to_s, "last_read(3i)" => date_src[2].to_s) => 26: binding.irb 27: assert_equal(topic.last_read, Date.new(*date_src)) 28: end 29: 30: invalid_dates.each do |date_src| 31: assert_nothing_raised do irb(#<DateTest:0x0000556618194668>):001:0> topic.last_read.class => Date ``` Refer rsim/oracle-enhanced#845 rails/rails#25897
* | | Merge pull request #35455 from yahonda/revert_9395Ryuta Kamizono2019-03-031-10/+2
|\ \ \ | |/ / |/| | Oracle 12.2+ supports 128 byte identifier length
| * | Oracle 12.2+ supports 128 byte identifier lengthYasuo Honda2019-03-031-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ```ruby $ ARCONN=oracle bin/test test/cases/migration/columns_test.rb -n test_rename_column_with_multi_column_index ... snip ... F Failure: ActiveRecord::Migration::ColumnsTest#test_rename_column_with_multi_column_index [/home/yahonda/git/rails/activerecord/test/cases/migration/columns_test.rb:113]: --- expected +++ actual @@ -1 +1 @@ -["i_test_models_hat_style_size"] +["index_test_models_on_hat_style_and_size"] ``` Kind of reverting #9395 Refer https://github.com/rsim/oracle-enhanced/pull/1703
* | | activesupport: Simplify class_attribute implementation (#35454)Dylan Thacker-Smith2019-03-031-15/+10
|/ / | | | | | | | | | | | | | | * activesupport(class_attribute): Use redefine_singleton_method * activesupport(class_attribute): Use keyword arguments * activesupport(class_attribute): Avoid unnecessary redefinition for default
* | Merge pull request #35446 from jhawthorn/actionmailer_format_assignmentAaron Patterson2019-03-015-2/+17
|\ \ | | | | | | Add test and change how format set in ActionMailer
| * | Add test and change how format set in ActionMailerJohn Hawthorn2019-03-015-2/+17
|/ / | | | | | | | | | | | | | | | | | | Previously this used self.formats= to set the format which render would use to find templates. This worked, but was untested, and looked a little confusing because it was doing the mutation within a loop. This commit replaces the assignment with passing formats: [format] into the render call, which makes it more obvious that that's the purpose of the format. It also adds a test to verify the formats being used.
* | Merge pull request #35429 from jhawthorn/template_format_nilAaron Patterson2019-03-019-19/+16
|\ \ | | | | | | Allow nil format on templates
| * | Remove query_format argument from resolverJohn Hawthorn2019-02-263-5/+5
| | |
| * | Create templates with format=nilJohn Hawthorn2019-02-266-9/+11
| | |
| * | Allow format to be nilJohn Hawthorn2019-02-261-5/+0
| | |
* | | Use the correct model in the testRafael Mendonça França2019-03-011-1/+1
| | | | | | | | | | | | | | | This was using a model without a default scope what made the test don't break anymore if the code is removed.
* | | Merge pull request #35441 from kamipo/allow_from_with_index_hintRyuta Kamizono2019-03-012-12/+27
|\ \ \ | | | | | | | | Relax table name detection in `from` to allow any extension like INDEX hint
| * | | Relax table name detection in `from` to allow any extension like INDEX hintRyuta Kamizono2019-03-012-12/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #35360 allows table name qualified if `from` has original table name. But that is still too strict. We have a valid use case that `from` with INDEX hint (e.g. `from("comments USE INDEX (PRIMARY)")`). So I've relaxed the table name detection in `from` to allow any extension like INDEX hint. Fixes #35359.
* | | | Merge pull request #35431 from kamipo/enable_sql_cache_on_findRyuta Kamizono2019-03-012-4/+23
|\ \ \ \ | |/ / / |/| | | Enable SQL statement cache for `find` on base class as with `find_by`
| * | | Enable SQL statement cache for `find` on base class as with `find_by`Ryuta Kamizono2019-03-012-4/+23
| | | | | | | | | | | | | | | | Related and follows d333d85254d27cd572e6ecce8ee850c107a4f340.
* | | | Merge pull request #33611 from willianveiga/feature/reselect-methodAndrew White2019-03-014-0/+58
|\ \ \ \ | | | | | | | | | | Add reselect method
| * | | | Avoid creating an extra relation instanceWillian Gustavo Veiga2018-10-241-2/+9
| | | | |
| * | | | Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-2253-363/+427
| |\ \ \ \
| * \ \ \ \ Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-1749-347/+518
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-11137-1275/+2336
| |\ \ \ \ \ \
| * | | | | | | Mention reselect new method in the "Active Record Query Interface" guideWillian Gustavo Veiga2018-10-041-0/+26
| | | | | | | |
| * | | | | | | Add changelog entryWillian Gustavo Veiga2018-10-021-0/+4
| | | | | | | |
| * | | | | | | Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-02719-3931/+10739
| |\ \ \ \ \ \ \
| * | | | | | | | Add reselect methodWillian Gustavo Veiga2018-08-132-0/+19
| | | | | | | | |
* | | | | | | | | Remove unused requiresRyuta Kamizono2019-03-011-2/+0
| |_|_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `require "bcrypt"` is unsed since #15431. `require "models/topic"` is unused since 893c647da37189543b2c2d55b07d414b1ba8b0d0.
* | | | | | | | Avoid `Topic.dup` to prevent weird test failureRyuta Kamizono2019-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an alternative of 65c4b1b50df3fa59198de2d45d1f54b61ecc7864. https://buildkite.com/rails/rails/builds/59147#117e9445-23e8-455a-b486-ea0ae9636405/120-129
* | | | | | | | Reset dirty `topics` table for `SerializedAttributeTest`Ryuta Kamizono2019-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some untransactional tests (e.g. `CallbacksOnMultipleActionsTest`) makes `topics` table dirty. We should reset dirty `topics` table before `SerializedAttributeTest` is run. https://travis-ci.org/rails/rails/jobs/499719624#L1209-L1215
* | | | | | | | Removes unnecessary dot in regexpXavier Noria2019-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A string S matches ([.]|\b)html if an only if matches \bhtml: * If S matches [.]html, then it matches \bhtml. * If S matches \bhtml, then it matches \bhtml. Reciprocally: * If S matches \bhtml, then it matches ([.]|\b)html. The character class can be removed, and since we are on it we remove the group too so that it is clear to a reader of the code that there is no grouping going on. References #35166.
* | | | | | | | Merge pull request #35435 from meinac/fix_recently_added_wrong_docKasper Timm Hansen2019-02-281-1/+1
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | | [ci skip] The `find` method coerces the given arguments to integer if the `primary key` is integer
| * | | | | | | [ci skip] The `find` method coerces the given arguments to integer if the ↵Mehmet Emin INAC2019-02-281-1/+1
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | `primary key` is integer