aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/collection_cache_key_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* Don't use `collection.table_name` in `collection_cache_key`Ryuta Kamizono2017-09-141-0/+18
| | | | | Because `collection.table_name` doesn't respect table alias. Use `collection.arel_attribute` instead.
* Use frozen-string-literal in ActiveRecordKir Shatrov2017-07-191-0/+2
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* Replace \Z to \zRyuta Kamizono2017-04-241-12/+12
| | | | \Z was a mistake of \z. Replace \Z to \z to prevent newly \Z added.
* `cache_key` respects the limit in a relation even if a relation is not loadedRyuta Kamizono2017-04-171-2/+28
| | | | | | `cache_key` includes the size of a relation. But if a relation is not loadded, the size is not respected even if a relation has a limit. It should be respected for consistency.
* Add more rubocop rules about whitespacesRafael Mendonça França2016-10-291-3/+3
|
* Fix AR::Relation#cache_key to remove select scope added by userPrathamesh Sonpatki2016-01-241-0/+6
| | | | | | | | | | - We don't need the select scope added by user as we only want to max timestamp and size of the collection. So we already know which columns to select. - Additionally having user defined columns in select scope blows the cache_key method with PostGreSQL because it needs all `selected` columns in the group_by clause or aggregate function. - Fixes #23038.
* Fix ActiveRecord::Relation#cache_key for relations with no resultsPrathamesh Sonpatki2016-01-221-0/+5
| | | | | | | - When relations return no result or 0 result then cache_key should handle it gracefully instead of blowing up trying to access `result[:size]` and `result[:timestamp]`. - Fixes #23063.
* Fix ActiveRecord::Relation#cache_key for loaded empty collectionPrathamesh Sonpatki2016-01-161-0/+8
| | | | | | | | | - Before this patch if we try to find cache_key of a loaded but empty collection it used to give error because of trying to call `updated_at` on `nil` value generated by `collection.max_by(&timestamp_column).public_send(timestamp_column)`. - This commit fixes above error by checking if size is greater than zero or not.
* fixes #21815Maarten Jacobs2015-10-161-1/+1
| | | | | | | | | | | | | | | The default timestamp used for AR is `updated_at` in nanoseconds! (:nsec) This causes issues on any machine that runs an OS that supports nanoseconds timestamps, i.e. not-OS X, where the cache_key of the record persisted in the database (milliseconds precision) is out-of-sync with the cache_key in the ruby VM. This commit adds: A test that shows the issue, it can be found in the separate file `cache_key_test.rb`, because - model couldn't be defined inline - transactional testing needed to be turned off to get it to pass the MySQL tests This seemed cleaner than putting it in an existing testcase file. It adds :usec as a dateformat that calculates datetime in microseconds It sets precision of cache_key to :usec instead of :nsec, as no db supports nsec precision on timestamps
* Fix ambiguous argument warningMehmet Emin İNAÇ2015-08-021-1/+1
| | | | encapsulate all arguments
* Add #cache_key to ActiveRecord::Relation.Alberto F. Capel2015-07-201-0/+70