django1/django/db/models/sql
Anssi Kääriäinen 23ca3a0194 Fixed #16759 -- Remove use of __deepcopy__ in qs.clone()
The original problem was that queryset cloning was really expensive
when filtering with F() clauses. The __deepcopy__ went too deep copying
_meta attributes of the models used. To fix this the use of
__deepcopy__ in qs cloning was removed.

This commit results in some speed improvements across the djangobench
benchmark suite. Most query_* tests are 20-30% faster, save() is 50%
faster and finally complex filtering situations can see 2x to order
of magnitude improvments.

Thanks to Suor, Alex and lrekucki for valuable feedback.
2013-01-08 19:17:13 +02:00
..
__init__.py Remove all relative imports. We have always been at war with relative imports. 2011-10-18 00:47:49 +00:00
aggregates.py Fixed #16759 -- Remove use of __deepcopy__ in qs.clone() 2013-01-08 19:17:13 +02:00
compiler.py Minor improvement to proxy model handling 2012-12-30 11:20:27 +02:00
constants.py Moved join path generation to Field 2012-12-30 11:19:19 +02:00
datastructures.py Refactored the empty/full result logic in WhereNode.as_sql() 2012-07-01 17:21:34 +03:00
expressions.py Fixed #19500 -- Solved a regression in join reuse 2012-12-20 21:27:00 +02:00
query.py Fixed #16759 -- Remove use of __deepcopy__ in qs.clone() 2013-01-08 19:17:13 +02:00
subqueries.py Fixed #19500 -- Solved a regression in join reuse 2012-12-20 21:27:00 +02:00
where.py Fixed #16759 -- Remove use of __deepcopy__ in qs.clone() 2013-01-08 19:17:13 +02:00