| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-09-14 | Fixed #33012 -- Added Redis cache backend. | Daniyal | |
| Thanks Carlton Gibson, Chris Jerdonek, David Smith, Keryn Knight, Mariusz Felisiak, and Nick Pope for reviews and mentoring this Google Summer of Code 2021 project. | |||
| 2021-09-07 | Fixed #32076 -- Added async methods to BaseCache. | Andrew-Chen-Wang | |
| This also makes DummyCache async-compatible. | |||
| 2021-09-07 | Fixed #33060 -- Added BaseCache.make_and_validate_key() hook. | Nick Pope | |
| This helper function reduces the amount of duplicated code and makes it easier to ensure that we always validate the keys. | |||
| 2021-09-07 | Refs #33060 -- Ensured cache backends validate keys. | Nick Pope | |
| The validate_key() function should be called after make_key() to ensure that the validation is performed on the key that will actually be stored in the cache. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2021-09-03 | Refs #33060 -- Added .make_key() in .touch() for dummy cache backend. | Nick Pope | |
| All cache operations should use make_key(). | |||
| 2021-08-31 | Refs #33061 -- Removed unnecessary BaseMemcachedCache.decr(). | Mariusz Felisiak | |
| 2021-08-31 | Fixed #33061 -- Fixed handling nonexistent keys with negative deltas in ↵ | Sondre Lillebø Gundersen | |
| incr()/decr() in memcached backends. Thanks Chris Jerdonek for the review. | |||
| 2021-05-26 | Fixed #32772 -- Made database cache count size once per set. | Michael Lissner | |
| 2021-05-18 | Fixed #32747 -- Prevented initialization of unused caches. | Mariusz Felisiak | |
| Thanks Alexander Ebral for the report. Regression in 98e05ccde440cc9b768952cc10bc8285f4924e1f. | |||
| 2021-05-12 | Fixed #32366 -- Updated datetime module usage to recommended approach. | Nick Pope | |
| - Replaced datetime.utcnow() with datetime.now(). - Replaced datetime.utcfromtimestamp() with datetime.fromtimestamp(). - Replaced datetime.utctimetuple() with datetime.timetuple(). - Replaced calendar.timegm() and datetime.utctimetuple() with datetime.timestamp(). | |||
| 2021-05-05 | Fixed #32705 -- Prevented database cache backend from checking .rowcount on ↵ | ecogels | |
| closed cursor. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2020-12-17 | Fixed #29867 -- Added support for storing None value in caches. | Nick Pope | |
| Many of the cache operations make use of the default argument to the .get() operation to determine whether the key was found in the cache. The default value of the default argument is None, so this results in these operations assuming that None is not stored in the cache when it actually is. Adding a sentinel object solves this issue. Unfortunately the unmaintained python-memcached library does not support a default argument to .get(), so the previous behavior is preserved for the deprecated MemcachedCache backend. | |||
| 2020-12-15 | Fixed typo in django/core/cache/backends/base.py docstring. | Abhishek Ghaskata | |
| 2020-12-09 | Fixed #32193 -- Deprecated MemcachedCache. | Mariusz Felisiak | |
| 2020-12-08 | Fixed #32233 -- Cleaned-up duplicate connection functionality. | Florian Apolloner | |
| 2020-12-07 | Refs #21012 -- Removed unnecessary _create_cache() hook. | Florian Apolloner | |
| This removes unused (since d038c547b5ce585cbf9ef5bb7e5298f52e4a243b) workaround to load a cache backend with its dotted import path and moves remaining logic to the CacheHandler. Thanks Tim Graham for the review. | |||
| 2020-09-16 | Fixed #29887 -- Added a cache backend for pymemcache. | Nick Pope | |
| 2020-09-02 | Refs #29887, Refs #24212 -- Added servers configuration hook for memcached ↵ | Nick Pope | |
| backends. The servers property can be overridden to allow memcached backends to alter the server configuration prior to it being passed to instantiate the client. This allows avoidance of documentation for per-backend differences, e.g. stripping the 'unix:' prefix for pylibmc. | |||
| 2020-09-01 | Refs #29887 -- Simplified memcached client instantiation. | Nick Pope | |
| 2020-09-01 | Fixed CVE-2020-24584 -- Fixed permission escalation in intermediate-level ↵ | Mariusz Felisiak | |
| directories of the file system cache on Python 3.7+. | |||
| 2020-08-24 | Fixed #31907 -- Fixed missing validate_key() calls in cache backends. | Nick Pope | |
| 2020-08-20 | Refs #29887, #27480 -- Moved touch() to BaseMemcachedCache. | Nick Pope | |
| 2020-08-20 | Fixed comments related to nonexistent keys for incr()/decr() in memcached ↵ | Nick Pope | |
| backends. | |||
| 2020-06-22 | Fixed #31728 -- Fixed cache culling when no key is found for deletion. | Guillermo Bonvehí | |
| DatabaseCache._cull implementation could fail if no key was found to perform a deletion in the table. This prevented the new cache key/value from being correctly added. | |||
| 2020-06-05 | Fixed #31654 -- Fixed cache key validation messages. | Mariusz Felisiak | |
| 2020-06-03 | Fixed CVE-2020-13254 -- Enforced cache key validation in memcached backends. | Dan Palmer | |
| 2020-02-11 | Fixed #31253 -- Fixed data loss possibility when using caching from async code. | Jon Dufresne | |
| Case missed in a415ce70bef6d91036b00dd2c8544aed7aeeaaed. | |||
| 2019-11-14 | Fixed #30759 -- Made cache.delete() return whether it succeeded. | daniel a rios | |
| Thanks Simon Charette for the review. | |||
| 2019-09-18 | Fixed #30772 -- Optimized make_template_fragment_key(). | Daniel Fairhead | |
| Removed usage of urllib.quote(), unnecessary since cbbe60c7fc39fa8ff75554bd90104eaad6924bb1. Used hasher's .update() on key fragments. | |||
| 2019-04-24 | Removed unnecessary assignments in various code. | Jon Dufresne | |
| 2019-02-14 | Fixed #30181 -- Made cache.get() with default work correctly on PyLibMCCache ↵ | Jakub Szafrański | |
| if None is cached. | |||
| 2019-02-08 | Simplified FileBasedCache.clear(). | Jon Dufresne | |
| glob.glob1() ignores missing paths. | |||
| 2019-01-31 | Fixed #30147 -- Simplified directory creation with os.makedirs(..., ↵ | Jon Dufresne | |
| exist_ok=True). | |||
| 2019-01-17 | Refs #28370 -- Removed support for the context arg of Field.from_db_value() ↵ | Tim Graham | |
| and Expression.convert_value(). Per deprecation timeline. | |||
| 2018-08-17 | Fixed #29626, #29584 -- Added optimized versions of get_many() and ↵ | oliver | |
| delete_many() for the db cache backend. | |||
| 2018-07-09 | Fixed #29550 -- Eased overriding pickle.dumps() protocol in cache backends ↵ | Simon Charette | |
| and session serializer. | |||
| 2018-07-09 | Refs #27480 -- Moved FileBasedCache content writing logic to a method. | Simon Charette | |
| 2018-07-09 | Fixed #20584 -- Fixed memcached's get_many() with single-use iterators. | Christian Barcenas | |
| Thanks Guyon Morée for the report. | |||
| 2018-05-28 | Added 'caches' to django.core.cache.__all__. | Wang Dongxiao | |
| 2018-04-27 | Fixed #27480 -- Added cache.touch(). | Nicolas Noé | |
| 2018-03-13 | Quoted field names in cache db backend SQL. | Hajime Nakagami | |
| On Firebird, 'value' is a reserved word and must be quoted. | |||
| 2018-02-02 | Refs #27795 -- Replaced force_bytes() usage in django.core.cache. | Jon Dufresne | |
| 2018-01-24 | Fixed #28977 -- Changed local-memory cache to use LRU culling. | Grant Jenks | |
| LRU culling turns every read into a kind of write to the cache: cache keys are moved to the first position in the OrderedDict when they are retrieved. The RWLock which permitted multiple readers while prioritizing a single writer is obsolete since all accesses are now writes. | |||
| 2018-01-03 | Fixed #28982 -- Simplified code with and/or. | Дилян Палаузов | |
| 2017-12-11 | Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking. | Nick Pope | |
| 2017-12-07 | Refs #23919 -- Replaced super() calls for old-style classes. | Nick Pope | |
| 2017-10-31 | Fixed #28760 -- Removed DummyCache's unnecessary get/set/delete_many(). | Adam Johnson | |
| 2017-10-30 | Refs #27318 -- Made DummyCache.set_many() return a list for consistency with ↵ | Adam Johnson | |
| other backends. | |||
| 2017-10-10 | Fixed #28601 -- Prevented cache.get_or_set() from caching None if default is ↵ | Daniel Tao | |
| a callable that returns None. | |||
| 2017-09-22 | Refs #20892 -- Removed support for passing pylibmc behavior settings as ↵ | Tim Graham | |
| top-level attributes of CACHES['OPTIONS']. Per deprecation timeline. | |||
