Commit Graph

47 Commits

Author SHA1 Message Date
Russell Keith-Magee 1fc7c4aee4 Fixed #14596 -- Light refactoring of the cache backends.
* Removes some code duplication,
 * Provides a convenient base class for db-like cache backends
 * Adds tests for an edge case of culling,
 * Marks the memcached tests as "skipped", rather than omitting them.

Thanks to Jonas H for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14434 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-11-02 05:55:08 +00:00
Russell Keith-Magee 1070c57b83 Fixed #14436 -- Escalated 1.2 PendingDeprecationWarnings to DeprecationWarnings, and removed 1.1 deprecated code.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14138 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-10-11 12:20:07 +00:00
Malcolm Tredinnick fc26da645a Add warning when using cache keys that might not work with memcached.
This means testing with local dev caches (not memcache) will warn
developers if they are introducing inadvertent importabilities. There is
also the ability to silence the warning if a dev is not planning to use
memcache and knows what they are doing with their keys.

Thanks to Carl Meyer for the patch. Fixed #6447.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13766 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-09-12 18:45:26 +00:00
Luke Plant 92b91d6e7b Fixed #14250 - FileBasedCacheTests.test_cull test failure
This patch makes the cull behaviour (which files deleted and how many
deleted) deterministic.



git-svn-id: http://code.djangoproject.com/svn/django/trunk@13705 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-09-10 13:03:02 +00:00
Russell Keith-Magee 2a0f4fb5da Fixed #14199 -- Added a missing table creation statement in the db cache backend cull implementation, and added tests for cache culling. Thanks to Tim for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13678 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-08-31 00:44:46 +00:00
Russell Keith-Magee fc374976e5 Fixed #13946 -- Modified the database cache backend to use the database router to determine availability of the cache table. Thanks to tiemonster for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13473 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-08-05 02:13:32 +00:00
Russell Keith-Magee 5211f48ae3 Fixed #12164 -- Removed the Python 2.3 compatibility imports and workarounds. Thanks to timo and claudep for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13094 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-05-04 14:00:30 +00:00
Russell Keith-Magee 94a968cfc6 Fixed #13357 -- Minor changes to get Django running under PyPy. Thanks to Alex Gaynor for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12991 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-04-16 11:11:55 +00:00
Russell Keith-Magee 2287426ba6 Fixed #12427 -- Started the deprecation path for cmemcache support. Thanks to otherjacob for his work on this issue.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12754 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-03-10 14:02:59 +00:00
Jacob Kaplan-Moss b3a56755d7 Fixed #11012: don't needless convert cache values to unicode.
This means you can now successfully store binary blogs, such as compressed data,
in the cache.

Thanks to Matt Croydon for the final patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12637 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-03-01 20:11:24 +00:00
Russell Keith-Magee 02d40b93f8 Fixed #11483 -- Modified db cache backend to use db backend functions for date conversion, avoiding problems under Jython. Thanks to Leo Soto for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12411 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-02-11 12:26:34 +00:00
Russell Keith-Magee ab828da2b9 Fixed #11623 -- Corrected table name quoting in db cache backend. Thanks to Fraser Nevett for the report and fix.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12410 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-02-11 12:21:46 +00:00
Russell Keith-Magee 4d2f489bca Fixed #12189 -- Corrected rollback behavior in database cache backend. Thanks to Lakin Wecker for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12409 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-02-11 12:10:11 +00:00
Russell Keith-Magee 75ab212d12 Fixed #12399 -- Added handling for memcache timeouts longer than 30 days. Thanks to houdinihound for the report, and gciotta for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12408 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-02-11 12:06:26 +00:00
Russell Keith-Magee 8e8d4b5888 Fixed #12671 -- Added set_many(), get_many(), and clear() methods to the cache backend interface. Thanks to Jeff Balogh for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12306 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-01-27 08:21:35 +00:00
Adrian Holovaty 5ceed0a053 Changed a whole bunch of places to raise exception instances instead of old-style raising exception classes plus a comma. Good for the future Python 3 conversion
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12180 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-01-10 18:36:20 +00:00
Jacob Kaplan-Moss 07ba0dbaf7 Fixed #10646: `cache.incr()` and `decr()` now fail consistantly under python-memcache and cmemcache.
Though it looks like this commit has no tests that's not so: this is tested for in `regressiontests/cache/tests.py` around like 183; these tests currently fail if ran against cmemcache.

Thanks, andrewfong.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11855 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-12-13 20:35:06 +00:00
Jacob Kaplan-Moss 644e98136a Fixed #9644: fix a thread sync issue in the locmem cache. Thanks, mrts.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10333 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-04-01 17:05:19 +00:00
Ian Kelly 83c1572cc4 Fixed #10488: fixed DB cache backend test failures in Oracle.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10051 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-03-13 21:04:48 +00:00
Russell Keith-Magee 638dbc3e83 Fixed #6464 -- Added incr() and decr() operations on cache backends. Atomic on Memcache; implemented as a 2 stage retrieve/update on other backends. Includes refactor of the cache tests to ensure all the backends are actually tested, and a fix to the DB cache backend that was discovered as a result. Thanks to Michael Malone for the original patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10031 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-03-11 13:27:03 +00:00
Malcolm Tredinnick 392f81cba9 Fixed #9626 -- Fixed a deletion race in the locmem cache.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9998 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-03-08 09:59:43 +00:00
Malcolm Tredinnick 8f28a84a98 The database cache wasn't correctly handling expired keys. Fixed now.
The cache tests have been failing for a long time with the db backend. This
change makes them pass again, so no test changes required here.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9942 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-03-02 03:15:27 +00:00
Malcolm Tredinnick e7769c36e9 Fixed #8410 -- Added a missing piece of value encoding for the memcached
backend. Patch from trbs.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8444 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-08-19 20:35:56 +00:00
Malcolm Tredinnick 2d2396a384 Fixed #5133 -- Explicitly close memcached connections after each request
(similar to database connection management). We can't effectively manage the
lifecycle by pooling connections and recent versions of python-memcache can
lead to connection exhaustion in some quite reasonable setups.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8418 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-08-16 23:35:58 +00:00
Malcolm Tredinnick f6670e1341 Added a return value to the add() method for caches. It's now possible to tell
if a call to add() ended up storing something in the cache.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8278 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-08-10 03:52:21 +00:00
Gary Wilson Jr c85c8f8891 Fixed #7919 -- md5 and sha modules are deprecated since Python 2.5, use hashlib module when available. Patch from Karen Tracey.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8193 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-08-02 05:56:57 +00:00
Malcolm Tredinnick 66612ef529 Fixed #6413 -- Fixed a deadlock situation in the locmem culling implementation.
Thanks, Joe Holloway.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8090 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-07-26 05:27:59 +00:00
Malcolm Tredinnick 6f16b5bad2 Fixed #7967 -- Make sure the __contains__ method in the cache backends call the
right has_key() method for the subclass. Patch from Marty Alchin.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8084 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-07-26 03:58:31 +00:00
Malcolm Tredinnick f425cb8caa Fixe #6131 -- Fixed a problem with expired keys in the locmem cache. Based on a patch from sherbang.
In passing, changed the get() method to use a similar style to has_key() and made add() fractionally faster with the same sort of change (only compute time.time() when we really need it).


git-svn-id: http://code.djangoproject.com/svn/django/trunk@6904 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-11 01:20:25 +00:00
Jacob Kaplan-Moss acfff050ec Fixed #6099: the filebased cache backend now uses md5 hashes of keys instead of sanitized filenames. For good measure, keys are partitioned into subdirectories using the first few bits of the hash. Thanks, sherbang.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6887 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-04 18:03:56 +00:00
Malcolm Tredinnick f6a3b499b8 Fixed #6086 -- Deprecate the "simple" cache backend in favour of "locmem".
Thanks, Paul Bissex.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@6822 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-02 00:35:14 +00:00
Adrian Holovaty 9e762f4407 Edited docs and docstring changes from [6572] (new cache add() method)
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6774 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-11-30 05:30:43 +00:00
Gary Wilson Jr 900811f401 Fixed #5981 -- Fixed failing regression test when using locmem cache backend. Changed `add` to pickle the value as is done in `set`. Based on patch from mattmcc.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6709 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-11-21 19:54:58 +00:00
Malcolm Tredinnick ef454b8a14 Fixed a bug in the db cache backend introduced in [6572].
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6589 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-10-21 19:19:32 +00:00
Malcolm Tredinnick 714c09b8bd Fixed #4831 -- Added an "add" cache key method, for parity with memcached's
API. This works for all cache backends. Patch from Matt McClanahan.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@6572 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-10-20 15:16:34 +00:00
Malcolm Tredinnick 2679bc0304 Fixed #4845 -- Fixed some problems with Unicode usage and caching. Thanks,
Jeremy Dunck.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5718 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-07-16 09:36:10 +00:00
Gary Wilson Jr a41c03345e Changed imports to adhere to PEP 8.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5704 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-07-15 06:29:45 +00:00
Gary Wilson Jr ae7f04caab Fixed #3012 -- Changed the locmem cache backend to use pickle instead of deepcopy to make it compatible with iterators (which cannot be copied). Patch from Sundance.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5703 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-07-15 06:24:54 +00:00
Malcolm Tredinnick 0839a0046a Fixed #4041 -- Added a __contains__ method to cache backends. Thanks, Gary
Wilson and SmileyChris.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5171 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-05-08 04:13:46 +00:00
Malcolm Tredinnick 439cb4047f Fixed #4040 -- Changed uses of has_key() to "in". Slight performance
improvement and forward-compatible with future Python releases. Patch from Gary
Wilson.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5091 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-26 13:30:48 +00:00
Adrian Holovaty a5bb14ed2e Fixed #3648 -- Added support for cmemcached Python library. Thanks, floguy@gmail.com
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4827 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-03-25 23:29:31 +00:00
Jacob Kaplan-Moss c1b11091e7 Fixed #3290: DummyCache now conforms to the BaseCache interface correctly. Thanks, Ned Batchelder.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4308 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-01-12 15:16:55 +00:00
Adrian Holovaty eef88a6d2c Fixed #2561 -- memcached cache backend no longer ignores default timeout. Thanks for the report and patch, Christopher Lenz
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3611 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-08-18 15:10:08 +00:00
Jacob Kaplan-Moss 17d0bd1512 Fixed a bunch of spurious imports, typos, and other small errors turned up by a pass through PyFlakes. This covers about the first third of the errors.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3411 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-21 17:11:13 +00:00
Adrian Holovaty 2abfd5dd58 Fixed #2109 -- Convert old-style classes to new-style classes throughout Django. Thanks, Nicola Larosa
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3113 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-06-08 05:00:13 +00:00
Adrian Holovaty f69cf70ed8 MERGED MAGIC-REMOVAL BRANCH TO TRUNK. This change is highly backwards-incompatible. Please read http://code.djangoproject.com/wiki/RemovingTheMagic for upgrade instructions.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2809 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-05-02 01:31:56 +00:00
Adrian Holovaty c5073320a7 Refactored cache from django/core/cache.py into django/core/cache package, with each backend getting a separate module. This keeps things cleaner and uses less memory, because the backend module is only loaded if it's needed.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2378 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-02-24 06:07:01 +00:00