aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | 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
* / / / / / 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
* | | | | 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-013-0/+32
|\ \ \ \ \ \ | | | | | | | | | | | | | | 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-224-19/+15
| |\ \ \ \ \ \
| * \ \ \ \ \ \ Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-1717-120/+118
| |\ \ \ \ \ \ \
| * \ \ \ \ \ \ \ Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-1155-807/+1582
| |\ \ \ \ \ \ \ \
| * | | | | | | | | Add changelog entryWillian Gustavo Veiga2018-10-021-0/+4
| | | | | | | | | |
| * | | | | | | | | Merge branch 'master' into feature/reselect-methodWillian Gustavo Veiga2018-10-02203-1333/+3050
| |\ \ \ \ \ \ \ \ \
| * | | | | | | | | | 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
* | | | | | | | | | [ci skip] The `find` method coerces the given arguments to integer if the ↵Mehmet Emin INAC2019-02-281-1/+1
| |_|_|_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | `primary key` is integer
* | | | | | | | | [ci skip] Fix the documentation of ActiveRecord::FinderMethods#findMehmet Emin INAC2019-02-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's mentioned everywhere as `ActiveRecord::RecordNotFound` so to be coherent with the rest of the documentation I've applied it here. Also doc was saying if the parameter is integer it coerces it which is other way around.
* | | | | | | | | Use dedicated `Topic` model for `SerializedAttributeTest`Ryuta Kamizono2019-02-282-24/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes both #34555 and #34738. Revert "Merge pull request #34900 from gmcgibbon/fix_test_find_only_some_columns" This reverts commit ff807f823b869d3491935a096183ee2bebd58e7b, reversing changes made to 9f1a07af0499080c9fd8815705a03a4c7e8fb506. Revert "Merge pull request #34560 from gmcgibbon/fix_decorate_leak_on_serial_attr_test" This reverts commit bd62389307e138ee0f274a9d62697567a3334ea0, reversing changes made to ec66c6a2fa4ee200259341a18ecd96310f388ba3. Revert "Fix unstable `test_serialized_attribute_works_under_concurrent_initial_access` test" This reverts commit 65c4b1b50df3fa59198de2d45d1f54b61ecc7864.
* | | | | | | | | Refactor `generated_relation_methods` to remove duplicated code on ↵Ryuta Kamizono2019-02-281-31/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ClassSpecificRelation`
* | | | | | | | | Allow returning nil for `default_scope`Ryuta Kamizono2019-02-282-5/+5
| | | | | | | | |
* | | | | | | | | Fix indentation [ci skip]Ryuta Kamizono2019-02-271-2/+2
| | | | | | | | |
* | | | | | | | | Fix random CI failure due to non-deterministic sorting orderRyuta Kamizono2019-02-271-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://travis-ci.org/rails/rails/jobs/499061043#L1187-L1193
* | | | | | | | | Fix test that was broken by adding a default scope to an existing modelRafael Mendonça França2019-02-263-2/+10
| | | | | | | | |
* | | | | | | | | Fix preload with nested associationsRafael Mendonça França2019-02-263-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the middle association doesn't have any records and the inner association is not an empty scope the owner will be `nil` so we can't try to reset the inverse association.
* | | | | | | | | :scissors:Ryuta Kamizono2019-02-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
* | | | | | | | | Add negative scopes for all enum values (#35381)David Heinemeier Hansson2019-02-263-0/+25
| |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | Add negative scopes for all enum values
* | | | | | | | Don't cache `find_by` statements on STI subclassesRyuta Kamizono2019-02-273-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Caching `find_by` statements on STI subclasses is unsafe, since `type IN (?,?,?,?)` part is dynamic, and we don't have SQL statements cache invalidation when a STI subclass is created or removed for now.
* | | | | | | | Test that no datetime precision isn't truncated on assignmentRyuta Kamizono2019-02-272-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, max precision (= 6) isn't regarded as unlimited precision for now.
* | | | | | | | Fix random CI failure due to non-deterministic sorting orderRyuta Kamizono2019-02-271-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://buildkite.com/rails/rails/builds/59106#596284a1-4692-4640-8a50-c4286e173bbb/115-126
* | | | | | | | Merge pull request #35361 from ↵Ryuta Kamizono2019-02-274-3/+40
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | jvillarejo/fix_wrong_size_query_with_distinct_select Fix different `count` calculation when using `size` with DISTINCT `select`
| * | | | | | | fixes different `count` calculation when using `size` manual `select` with ↵jvillarejo2019-02-264-3/+39
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DISTINCT When using `select` with `'DISTINCT( ... )'` if you use method `size` on a non loaded relation it overrides the column selected by passing `:all` so it returns different value than count. This fixes #35214
* | | | | | | Preparing for 6.0.0.beta2 releaseRafael Mendonça França2019-02-252-1/+3
| | | | | | |
* | | | | | | Merge pull request #35402 from alimi/update-ar-read-regexAaron Patterson2019-02-254-1/+29
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Support read queries with leading characters while preventing writes
| * | | | | | | Update READ_QUERY regexAli Ibrahim2019-02-254-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * The READ_QUERY regex would consider reads to be writes if they started with spaces or parens. For example, a UNION query might have parens around each SELECT - (SELECT ...) UNION (SELECT ...). * It will now correctly treat these queries as reads.
* | | | | | | | Refactor `type_to_sql` to handle converting `limit` to `size` in itselfRyuta Kamizono2019-02-266-76/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, improving an argument error message for `limit`, extracting around `type_to_sql` code into schema statements, and more exercise tests.
* | | | | | | | Fix prepared statements caching to be enabled even when query caching is enabledRyuta Kamizono2019-02-265-15/+79
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related cbcdecd, 2a56b2d. This is a regression caused by cbcdecd. If query caching is enabled, prepared statement handles are never re-used, since we missed that a query is preprocessed when query caching is enabled, but doesn't keep the `preparable` flag. We should care about that case.
* | | | | | | Merge pull request #35352 from kamipo/update_all_doesnt_care_optimistic_lockingRyuta Kamizono2019-02-254-19/+83
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Ensure `update_all` series doesn't care optimistic locking
| * | | | | | | Ensure `update_all` series cares about optimistic lockingRyuta Kamizono2019-02-254-19/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Incrementing the lock version invalidates any other process's optimistic lock, which is the desired outcome: the record no longer looks the same as it did when they loaded it.
* | | | | | | | Remove duplicated protected params definitionsRyuta Kamizono2019-02-246-88/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use "support/stubs/strong_parameters" instead.
* | | | | | | | Add test case for `unscope` with `merge`Ryuta Kamizono2019-02-241-0/+13
| | | | | | | |
* | | | | | | | More exercise string attribute predicate tests for falsy stringsRyuta Kamizono2019-02-241-0/+4
| | | | | | | |
* | | | | | | | Add test case for `unscope` with unknown columnRyuta Kamizono2019-02-241-0/+11
| | | | | | | |
* | | | | | | | More exercise tests for distinct count with group byRyuta Kamizono2019-02-241-2/+16
| | | | | | | |
* | | | | | | | minor grammar fix [ci skip]Shivam Jain2019-02-241-1/+1
| | | | | | | |