Commit Graph

1474 Commits

Author SHA1 Message Date
Anssi Kääriäinen bac187c0d8 [1.5.x] Fixed prefetch_related + pickle regressions
There were a couple of regressions related to field pickling. The
regressions were introduced by QuerySet._known_related_objects caching.

The regressions aren't present in master, the fix was likely in
f403653cf1.

Fixed #20157, fixed #20257. Also made QuerySets with model=None
picklable.
2013-05-21 11:45:24 +03:00
Anssi Kääriäinen 0eddedf7db [1.5.x] Fixed #20278 -- ensured .get() exceptions do not recurse infinitely
A regression caused by d5b93d3281 made .get() error
reporting recurse infinitely on certain rare conditions. Fixed this by
not trying to print the given lookup kwargs.

Backpatch of 266c0bb23e
2013-05-20 19:05:43 +03:00
Aymeric Augustin 6d3d6081e8 [1.5.x] Fixed #20025 -- Pointed to a MySQLdb fork for Python 3.
Made a few minor compatibility adjustments.

Backport of e81e319f from master.
2013-05-10 10:23:15 +02:00
Aymeric Augustin b5d6a5b21a [1.5.x] [py3] Stopped iterating on exceptions. Refs #20025.
Backport of 86b4ac66 from master.
2013-05-10 10:18:27 +02:00
Simon Charette d04e8f8c78 [1.5.x] Fixed #20207 -- Handle ManyToManyField with a unicode name correctly.
Backport of 216580e034.
2013-04-05 15:21:59 -04:00
Gavin Wahl d1b7bd030b [1.5.x] Fixed spelling errors
Backport of ec04fd1344 from master
2013-03-29 08:00:24 -04:00
Anssi Kääriäinen 207117ae73 [1.5.x] Fixed #20091 -- Oracle null promotion for empty strings
Backpatch of e17fa9e877
2013-03-26 15:05:37 +02:00
Marc Tamlyn dd897e4eeb [1.5.x] Fixed #20094 - Be more careful when checking for Iterator
Python 2.6 has some different behaviour when checking
isinstance(foo, collections.Iterator).
Backport of 829dc3c5 from master.
2013-03-22 17:45:41 +01:00
Claude Paroz b91067d9aa [1.5.x] Revert "Fixed #19895 -- Made second iteration over invalid queryset raise an exception too"
This reverts commit d1e87eb3ba.
This commit was the cause of a memory leak. See ticket for more details.
Thanks Anssi Kääriäinen for identifying the source of the bug.
2013-03-20 10:43:14 +01:00
Aymeric Augustin 702d39921c [1.5.x] Fixed #19634 -- Added proper __hash__ methods.
Classes overriding __eq__ need a __hash__ such that equal objects have
the same hash.

Thanks akaariai for the report and regebro for the patch.

Backport of e76147a from master.
2013-02-25 23:37:23 +01:00
Simon Charette f8b41da431 [1.5.x] Fixed #19688 -- Allow model subclassing with a custom metaclass using six.with_metaclass
Backport of 6b03179e12 from master.

Although we're post RC 2, I'm backporting this because it's arguably a
major bug in a new feauture that will prevent several well-known
third-party apps from being ported to Python 3.
2013-02-24 17:45:48 +01:00
Grzegorz Nosek d1e87eb3ba [1.5.x] Fixed #19895 -- Made second iteration over invalid queryset raise an exception too
When iteration over a queryset raised an exception, the result cache
remained initialized with an empty list, so subsequent iterations returned
an empty list instead of raising an exception

Backport of 2cd0edaa47 from master.
2013-02-23 14:39:05 -06:00
Anssi Kääriäinen 251f345db6 [1.5.x] Fixed Oracle regression in last_executed_query() with unicode strings
The regression was likely caused by the fix in #19606 which adjusted
Oracle's unicode detection, though it seems this would have been an
issue in some configurations even before.

Backpatch of ce094e570e
2013-02-23 00:31:14 +02:00
Anssi Kääriäinen 8a99d718f7 [1.5.x] Fixed empty strings + to_field regression on Oracle
Querying the reverse side of nullable to_field relation, where both
sides can contain null values resulted in incorrect results. The reason
was not detecting '' as NULL.

Refs #17541, backpatch of 09fcb70c80.
2013-02-23 00:09:48 +02:00
Anssi Kääriäinen 8ad436636f [1.5.x] Fixed #19672 -- Error in negated Q() filtering
There was a variable overwrite error in negated join filtering. This
happened when add_filter() was adding the IS NULL condition to the
WHERE clause.

This is not a backport from master as there have been some other
refactorings which made this patch irrelevant.

The patch is from Ian Kelly.
2013-02-20 21:57:39 +02:00
Anssi Kääriäinen 743263a105 [1.5.x] Removed try-except in django.db.close_connection()
The reason was that the except clause needed to remove a connection
from the django.db.connections dict, but other parts of Django do not
expect this to happen. In addition the except clause was silently
swallowing the exception messages.

Refs #19707, special thanks to Carl Meyer for pointing out that this
approach should be taken.
2013-02-13 00:22:10 +02:00
Anssi Kääriäinen 77f6eb2a60 [1.5.x] Made custom m2m fields without through easier to use
The change in f105fbe52b made through=None
m2m fields fail in cases where they worked before. It isn't possible to
create such fields using public APIs. The fix is trivial, so it seems
worth adding it.

This is not a backport from master. Master has gotten enough other
changes to related fields internal API that this fix alone isn't enough
to do any good.
2013-02-10 21:54:48 +02:00
Anssi Kääriäinen b18ad807e0 [1.5.x] Fixed #19720 -- Oracle ordering related delete regression
When a query had a complex where condition (a condition targeting more
than the base table) a subquery was used for deletion. However, the
query had default ordering from the model's meta and Oracle doesn't
work with ordered subqueries.

The regression was caused by fast-path deletion code introduced in
1cd6e04cd4 for fixing #18676.

Thanks to Dylan Klomparens for the report.

Backpatch of 8ef3235034
2013-02-10 19:58:22 +02:00
Anssi Kääriäinen d8e68f421e [1.5.x] Fixed #19638 -- Skipped tx support testing for some DBs
PostgreSQL and Oracle always support transactions, so the create table
and rollback test is non-necessary on those DBs.

Thanks to shai for report.

Backpatch of 0478780b8e
2013-02-10 19:08:15 +02:00
Anssi Kääriäinen 60186aa2e5 [1.5.x] Fixed #19707 -- Reset transaction state after requests
Backpatch of a4e97cf315
2013-02-10 14:09:58 +02:00
Tim Graham 5da6ce11ed [1.5.x] Fixed typos in docs and comments
Backport of ee26797cff from master
2013-01-29 10:58:24 -07:00
Anssi Kääriäinen f4132140f5 [1.5.x] Fixed #19652 -- Fixed .none() regression in related fields
The regression was caused by using .none() when querying for related
models, and the origin field's value was None. This resulted in missing
custom related manager subclass as .none() returns plain QuerySet.

This isn't backport from master, in master .none() correctly preserves
the queryset's class.

Patch provided by Simon Charette, with some minor polish by committer.
2013-01-23 08:26:34 +02:00
Jani Tiainen 457290326f [1.5.x] Fixed #19606 -- Adjusted cx_Oracle unicode detection.
Backpatch of d194f29057
2013-01-19 09:43:26 +02:00
Simon Charette 78739faedb [1.5.x] Fixed #19576 -- Use `six.with_metaclass` uniformously accross code base.
Backport of f58efd07f from master.
2013-01-08 20:16:14 +01:00
Anssi Kääriäinen 9d6d0de7c1 [1.5.x] Fixed #17541 -- Fixed non-saved/nullable fk querying
Backpatch of 55da775ce1
2013-01-08 21:03:53 +02:00
Claude Paroz 012229914c [1.5.x] Created special PostgreSQL text indexes when unique is True
Refs #19441.
Backport of c698c55966 from master.
2013-01-07 21:02:02 +01:00
Claude Paroz 96301d21bb [1.5.x] Fixed #19192 -- Allowed running tests with dummy db backend
Thanks Simon Charette for the initial patch, and Jan Bednařík for
his work on the ticket.
Backport of b740da3504 from master.
2013-01-04 14:03:55 +01:00
Claude Paroz a893ee3315 Fixed #19426 -- Adapted EmptyQuerySet.distinct signature
1.5-only change, as EmptyQuerySet will be refactored in 1.6.
Thanks hongshuning@gmail.com for the patch.
2013-01-03 18:03:51 +01:00
Aymeric Augustin 056ace0f39 [1.5.x] Fixed #19547 -- Caching of related instances.
When &'ing or |'ing querysets, wrong values could be cached, and crashes
could happen.

Thanks Marc Tamlyn for figuring out the problem and writing the patch.

Backport of 07fbc6a.
2013-01-02 22:22:14 +01:00
Aymeric Augustin 5097d3c5fa [1.5.x] Fix #19524 -- Incorrect caching of parents of unsaved model instances.
Thanks qcwxezdas for the report. Refs #13839.

Backport of e9c24be.
2012-12-28 23:35:08 +01:00
Aymeric Augustin 3cb87ec605 [1.5.x] Fixed #19525 -- Reverted dcd4383107 and 05d333ba3b.
Refs #9893, #18515.

Thanks Russell for the report.

Backport of db278c3 from master.
2012-12-27 09:43:41 +01:00
Anssi Kääriäinen a0155f3534 [1.5.x] Refactored proxy model skipping in get_default_columns()
The refactoring allows custom subclasses to use different default
columns than the base model.
2012-12-21 20:56:04 +02:00
Russell Keith-Magee b7607003a5 [1.5.x] Fixed #19401 -- Ensure that swappable model references are case insensitive.
This is necessary because get_model() checks are case insensitive, and if the swapable check isn't, the
swappable logic gets tied up in knots with models that are partially swapped out.

Thanks to chris@cogdon.org for the report and extensive analysis, and Preston for his work on the draft patch.

Backport of c04c03d from trunk.
2012-12-20 16:14:10 +08:00
Claude Paroz ddea0e0d7e [1.5.x] Fixed #19441 -- Created PostgreSQL varchar index when unique=True
Thanks Dylan Verheul for the report and Anssi Kääriäinen for the
review.
Backport of 55972ee5c from master.
2012-12-18 10:04:47 +01:00
Anssi Kääriäinen 1caa483914 [1.5.x] Fixed #19197 -- fixed convert_values() for nullable numeric fields
Cleaned up the implementation of base convert_values() a little, and
made sure it accepts None as a value for numeric fields.

There are no tests attached. The reason is that not all of the
convert_values() accept None as a value for numeric fields (for example
sqlite3.convert_values()).

The reason the base convert_values() needs to accept None is that this
situation might arise in custom compilers for 3rd party backends. It
is easy to keep the convert_values() working, so lets do that.

Backpatch of 12a96bfa26
2012-12-17 00:09:05 +02:00
Aymeric Augustin 44e56238d7 [1.5.x] Fixed #2304 -- Documented TRANSACTIONS_MANAGED.
Backport of a001f3c.
2012-12-14 21:16:04 +01:00
Claude Paroz 4214a22e06 [1.5.x] Fixed #19357 -- Allow non-ASCII chars in filesystem paths
Thanks kujiu for the report and Aymeric Augustin for the review.
Backport of c91667338 from master.
2012-12-08 11:16:03 +01:00
Anssi Kääriäinen e3ea668b47 [1.5.x] Fixed #14694 again -- Made defer() works with reverse relations
Master and stable/1.5.x had diverged in models/query.py.
2012-11-28 23:56:03 +02:00
Tai Lee a21e8dee76 [1.5.x] Fixed #14694 -- Made ``defer()`` work with reverse relations
Reverse o2o fields are now usable with defer.

Backpatch of [6ebf115206]
2012-11-28 18:25:34 +02:00
Anssi Kääriäinen 4467d86b61 [1.5.x] Removed duplicate opts.pk_index() method
Backpatch of [d37483c533]
2012-11-27 21:59:03 +02:00
Aymeric Augustin 71e5ad248e [1.5.x] Fixed #19362 -- Detected invalid use of @python_2_unicode_compatible.
Thanks m3wolf for the report and akaariai for reproducing the problem.

Backport of 2ea80b9.
2012-11-27 09:55:26 +01:00
Russell Keith-Magee 3fd8458fb3 [1.5.x] Fixed #19806 -- Ensure that content types and permissions aren't created for swapped models.
Thanks to rizumu for the report.

Backport of c8985a8a73.
2012-11-24 14:26:50 +08:00
Anssi Kääriäinen 421e599ad3 [1.5.x] Fixed #19351 -- SQLite bulk_insert of more than 500 single-field objs
Backpatch of 0a0a0d66b3
2012-11-24 01:20:22 +02:00
Anssi Kääriäinen 625dc3f072 [1.5.x] Fixed SQLite's collapsing of same-valued instances in bulk_create
SQLite used INSERT INTO tbl SELECT %s UNION SELECT %s, the problem
was that there should have been UNION ALL instead of UNION.

Refs #19351

Backpatch of a27582484c
2012-11-24 01:19:17 +02:00
Anssi Kääriäinen 90c7aa0740 [1.5.x] Fixed #18375 -- Removed dict-ordering dependency for F-expressions
F() expressions reuse joins like any lookup in a .filter() call -
reuse multijoins generated in the same .filter() call else generate
new joins. Also, lookups can now reuse joins generated by F().

This change is backwards incompatible, but it is required to prevent
dict randomization from generating different queries depending on
.filter() kwarg ordering. The new way is also more consistent in how
joins are reused.

Backpatch of 90b86291d0
2012-11-23 20:07:50 +02:00
Claude Paroz a023952e10 [1.5.x] Fixed #18989 -- Removed unused condition in CursorWrapper
Thanks zimnyx for the report.
Backport of 8c6927876 from master.
2012-11-17 16:54:12 +01:00
Anssi Kääriäinen 33f1181c31 [1.5.x] Fixed #19058 -- Fixed Oracle GIS crash
The problem is the same as in #10888 which was reintroduced when
bulk_insert was added. Thanks to Jani Tiainen for report, patch and
also testing the final patch on Oracle GIS.

Backpatch of 92d7f541da
2012-11-15 16:11:22 +02:00
Anssi Kääriäinen af044d86b8 Fixed select_related performance regressions
The regression was caused by select_related fix for Oracle, commit
c159d9cec0.
2012-11-13 23:02:08 +02:00
Anssi Kääriäinen fe21c233d4 Removed use of SortedDict for query.alias_refcount
This will have a smallish impact on performance. Refs #19276.
2012-11-13 23:01:34 +02:00
Anssi Kääriäinen 908226cf1a [1.5.x] Fixed #17144 -- MySQL again groups by PK only
Thanks to Christian Oudard for the report and tests.

Backpatch of [cafb266954]

Conflicts:

	django/db/models/sql/compiler.py
2012-11-08 01:10:24 +02:00