- Fixes an invalidation issue discovered by Helen Warren that was occurring when updating a ``ManyToManyField`` after executing using ``.exclude`` on that relation. For example, ``Permission.objects.all().delete()`` was not invalidating ``User.objects.exclude(user_permissions=None)`` - Fixes a ``UnicodeDecodeError`` introduced with python-memcached 1.54 - Adds a ``post_invalidation`` signal
1.0.0
-----
Fixes a bug occurring when caching a SQL query using a non-ascii table name.
1.0.0rc
-------
Added:
- Adds an `invalidate_cachalot` command to invalidate django-cachalot from a script without having to clear the whole cache - Adds the benchmark introduction, conditions & results to the documentation - Adds a short guide on how to configure Redis as a LRU cache
Fixed:
- Fixes a rare invalidation issue occurring when updating a many-to-many table after executing a queryset generating a ``HAVING`` SQL statement – for example, ``User.objects.first().user_permissions.add(Permission.objects.first())`` was not invalidating ``User.objects.annotate(n=Count('user_permissions')).filter(n__gte=1)`` - Fixes an even rarer invalidation issue occurring when updating a many-to-many table after executing a queryset filtering nested subqueries by another subquery through that many-to-many table – for example::
- Avoids setting useless cache keys by using table names instead of Django-generated table alias
0.9.0
-----
Added:
- Caches all queries implying ``Queryset.extra`` - Invalidates raw queries - Adds a simple API containing: ``invalidate_tables``, ``invalidate_models``, ``invalidate_all`` - Adds file-based cache support for Django 1.7 - Adds a setting to choose if random queries must be cached - Adds 2 settings to customize how cache keys are generated - Adds a django-debug-toolbar panel - Adds a benchmark
Fixed:
- Rewrites invalidation for a better speed & memory performance - Fixes a stale cache issue occurring when an invalidation is done exactly during a SQL request on the invalidated table(s) - Fixes a stale cache issue occurring after concurrent transactions - Uses an infinite timeout
Removed:
- Simplifies ``cachalot_settings`` and forbids its use or modification
0.8.1
-----
- Fixes an issue with pip if Django is not yet installed
0.8.0
-----
- Adds multi-database support - Adds invalidation when altering the DB schema using `migrate`, `syncdb`, `flush`, `loaddata` commands (also invalidates South, if you use it) - Small optimizations & simplifications - Adds several tests