aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | 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.
* | | | | | | | Merge pull request #35399 from kamipo/fix_prepared_statement_cachingRyuta Kamizono2019-02-265-15/+79
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Fix prepared statements caching to be enabled even when query caching is enabled
| * | | | | | | 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 #35394 from alkesh26/activemodel-typo-fixRyuta Kamizono2019-02-251-3/+3
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | activemodel typo fixes.
| * | | | | | | activemodel typo fix.alkesh262019-02-251-3/+3
| | | | | | | |
* | | | | | | | 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.
* | | | | | | | Merge pull request #35393 from alkesh26/activejob-typo-fixRyuta Kamizono2019-02-251-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | [ci skip] activejob typo fix.
| * | | | | | | | [ci skip] activejob typo fix.alkesh262019-02-251-1/+1
|/ / / / / / / /
* | | | | | | | 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
| | | | | | | |
* | | | | | | | Merge pull request #35383 from soartec-lab/update_guide_activerecord_queryingRyuta Kamizono2019-02-241-0/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | How to use `select` is updated [ci skip]
| * | | | | | | | How to use `select` is updated [ci skip]soartec-lab2019-02-241-0/+2
| | | | | | | | |
* | | | | | | | | Disable available locale checks in Action Test testyuuji.yaginuma2019-02-241-0/+3
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this change, `store_translations` silently fails when available locales already initialized. Ref: https://travis-ci.org/rails/rails/jobs/497615616#L6846 https://travis-ci.org/rails/rails/jobs/497605027#L6856
* | | | | | | | Merge pull request #35382 from ↵George Claghorn2019-02-232-48/+62
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | janko/restore-io-copy-stream-compatibility-with-uploaded-file Restore ActionDispatch::Http::UploadedFile compatibility with IO.copy_stream
| * | | | | | | | Restore UploadedFile compatibility with IO.copy_streamJanko Marohnić2019-02-232-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In https://github.com/rails/rails/pull/28676 the `#to_path` method was added to `ActionDispatch::Http::UploadedFile`. This broke usage with `IO.copy_stream`: source = ActionDispatch::Http::UploadedFile.new(...) IO.copy_stream(source, destination) # ~> TypeError: can't convert ActionDispatch::Http::UploadedFile to IO (ActionDispatch::Http::UploadedFile#to_io gives Tempfile) Normally `IO.copy_stream` just calls `#read` on the source object. However, when `#to_path` is defined, `IO.copy_stream` calls `#to_io` in order to retrieve the raw `File` object. In that case it trips up, because `ActionDispatch::Http::UploadedFile#to_io` returned a `Tempfile` object, which is not an `IO` subclass. We fix this by having `#to_io` return an actual `File` object.
| * | | | | | | | Test ActionDispatch::Http::UploadedFile with an actual TempfileJanko Marohnić2019-02-231-48/+48
| | | | | | | | |
* | | | | | | | | Make this test strongerXavier Noria2019-02-231-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We test the inflections for both autoloaders, but we can also autoload the constant as a sort of integration test.
* | | | | | | | | 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
| | | | | | | | |
* | | | | | | | | Let Zeitwerk autoloaders inflect with Active SupportXavier Noria2019-02-232-2/+32
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | [Harry Brundage & Xavier Noria]
* | | | | | | | Merge pull request #35379 from shivamvinsol/minor_grammar_fixRyuta Kamizono2019-02-241-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | minor grammar fix [ci skip]
| * | | | | | | | minor grammar fix [ci skip]Shivam Jain2019-02-241-1/+1
|/ / / / / / / /
* | | | | | | | Upgrade Zeitwerk to 1.3.1Xavier Noria2019-02-232-3/+3
| | | | | | | |
* | | | | | | | Merge pull request #35374 from rails/cache-inline-templatesAaron Patterson2019-02-223-1/+24
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add a finalizer to inline templates
| * | | | | | | | Add a finalizer to inline templatesAaron Patterson2019-02-223-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a finalizer just to inline templates. We can't cache compilation of inline templates because it's possible that people could have render calls that look like this: ```ruby loop do render inline: "#{rand}" end ``` and we would cache every one of these different inline templates. That would cause a memory leak. OTOH, we don't need finalizers on regular templates because we can cache, control, and detect changes to the template source. Fixes: #35372
* | | | | | | | | Merge pull request #35375 from ↵Yuji Yaginuma2019-02-231-7/+2
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | y-yagi/fix_test_select_with_subquery_in_from_uses_original_table_name Make `test_select_with_subquery_in_from_uses_original_table_name` work with old SQLite3
| * | | | | | | | Make `test_select_with_subquery_in_from_uses_original_table_name` work with ↵yuuji.yaginuma2019-02-231-7/+2
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | old SQLite3 It seems that the reason why the `test_select_with_subquery_in_from_uses_original_table_name` does not pass is that the return value of `sqlite3_column_name()` is wrong due to subquery flattening. This seems to have been fixed with SQLite 3.20.0(https://sqlite.org/changes.html#version_3_20_0). But CI uses the old version(maybe 3.11.0), I added `DISTINCT` to avoid optimization by subquery flattening. Ref: https://sqlite.org/optoverview.html#flattening
* | | | | | | | Merge pull request #35367 from ↵Rafael França2019-02-221-2/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | abhaynikam/update-getting-started-doc-for-migration-version-in-rails-6 Update migration version to 6.0 in the getting started doc [ci skip]
| * | | | | | | | [ci skip] Updated migration version to 6.0 in the getting started docsAbhay Nikam2019-02-221-2/+2
| | | | | | | | |
* | | | | | | | | Merge pull request #35370 from shivamvinsol/fix_skip_callbacks_documentationRyuta Kamizono2019-02-231-3/+2
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update callbacks skipping methods in guide. [ci skip]
| * | | | | | | | | update callbacks skipping methods in guide [ci skip]Shivam Jain2019-02-231-3/+2
| | | | | | | | | |
* | | | | | | | | | Merge pull request #35371 from rails/always-have-a-formatAaron Patterson2019-02-224-7/+18
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Ensure that rendered templates always have a format
| * | | | | | | | | | Ensure that rendered templates always have a formatAaron Patterson2019-02-224-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes one call to `lookup_context` and also eliminates a conditional in `_render_template`.
* | | | | | | | | | | Skip `test_select_with_subquery_in_from_uses_original_table_name` on CIRyuta Kamizono2019-02-231-1/+1
| |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Somehow `ENV["BUILDKITE"]` didn't work as expected.
* | | | | | | | | | Merge pull request #35369 from rails/fewer-lookup-context-callsAaron Patterson2019-02-222-6/+6
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | Pass lookup context to the layout handlers
| * | | | | | | | | Pass lookup context to the layout handlersAaron Patterson2019-02-222-6/+6
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I want to start reducing the calls to `lookup_context`. That method caches the lookup context in an ivar, but I would like to cache the lookup context on the stack. That way we aren't coupled to the behavior of the `lookup_context` method.
* | | | | | | | | Skip `test_select_with_subquery_in_from_uses_original_table_name` on ↵Ryuta Kamizono2019-02-221-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buildkite as well https://buildkite.com/rails/rails/builds/58981#2423c707-7c56-4639-a76e-8db4fd1e5cf3/102-111
* | | | | | | | | Merge pull request #35357 from ↵George Claghorn2019-02-222-2/+52
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | abhaynikam/35351-allows-rich-text-area-to-have-translated-placeholder Allows rich_text_area_tag to add translated placeholder text if placeholder option set to true
| * | | | | | | | | Allows rich_text_area_tag to add I18n translated placeholder text if ↵Abhay Nikam2019-02-222-2/+52
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | placeholder option set to true
* | | | | | | | | Prefer I18n.with_localeGeorge Claghorn2019-02-212-52/+37
| | | | | | | | |
* | | | | | | | | Merge pull request #35363 from rails/zeitwerk-1.3.0Xavier Noria2019-02-215-12/+11
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Bumps Zeitwerk
| * | | | | | | | | simplifies Rails.autoloaders.logger=Xavier Noria2019-02-212-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Possible thanks to Zeitwerk 1.3.0.
| * | | | | | | | | simplify AS::Dependencies.verbose=Xavier Noria2019-02-212-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Possible thanks to Zeitwerk 1.3.0.
| * | | | | | | | | bump ZeitwerkXavier Noria2019-02-212-3/+3
| |/ / / / / / / /
* | | | | | | | | Merge pull request #35360 from kamipo/fix_select_and_pluck_with_fromRyuta Kamizono2019-02-222-1/+42
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | Fix `pluck` and `select` with `from` if `from` has original table name
| * | | | | | | | Just skip `test_select_with_subquery_in_from_uses_original_table_name` on TravisRyuta Kamizono2019-02-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm not sure why the test is failed on Travis, it passed on locally. I suspect that failure is a bug on SQLite3, so just skip the test for now, since it was not covered by before. https://travis-ci.org/rails/rails/jobs/496726410#L1198-L1208
| * | | | | | | | Fix `pluck` and `select` with `from` if `from` has original table nameRyuta Kamizono2019-02-222-1/+39
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is caused by 0ee96d1. Since #18744, `select` columns doesn't be qualified by table name if using `from`. 0ee96d1 follows that for `pluck` as well. But people depends that `pluck` columns are qualified even if using `from`. So I've fixed that to be qualified if `from` has the original table name to keep the behavior as much as before. Fixes #35359.
* / / / / / / / Should not pass extra args to `_update_record`Ryuta Kamizono2019-02-213-7/+13
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The argument of `_update_record` and `_create_record` is `attribute_names`, that is reserved for overriding by partial writes attribute names. https://github.com/rails/rails/blob/67e20d1d4854d834e9e43e56486d37cd98983f0d/activerecord/lib/active_record/persistence.rb#L719 https://github.com/rails/rails/blob/67e20d1d4854d834e9e43e56486d37cd98983f0d/activerecord/lib/active_record/persistence.rb#L737 https://github.com/rails/rails/blob/67e20d1d4854d834e9e43e56486d37cd98983f0d/activerecord/lib/active_record/attribute_methods/dirty.rb#L171 https://github.com/rails/rails/blob/67e20d1d4854d834e9e43e56486d37cd98983f0d/activerecord/lib/active_record/attribute_methods/dirty.rb#L177 The reason that no failing with extra args is that `Timestamp` module which is most outside module of the `_update_record` discards the extra args. https://github.com/rails/rails/blob/67e20d1d4854d834e9e43e56486d37cd98983f0d/activerecord/lib/active_record/timestamp.rb#L104 But that looks odd dependency. It should not be passed extra args, should only be passed attribute names.