Anssi Kääriäinen
049eebc070
Merge branch 'master' into lookups_3
...
Conflicts:
django/db/models/fields/__init__.py
django/db/models/sql/compiler.py
django/db/models/sql/query.py
tests/null_queries/tests.py
2013-12-21 22:53:10 +02:00
Baptiste Mispelon
f1b3ab9c21
Fixed #11629 -- Deprecated callable arguments to queryset methods.
...
Callable arguments were an untested and undocumented feature.
2013-12-18 18:40:00 +01:00
Anssi Kääriäinen
4d219d4cde
Initial implementation of custom lookups
2013-11-30 20:23:48 +02:00
Anssi Kääriäinen
e7b61e5717
Fixed #11320 -- exclude() too aggressive in join promotion
2013-11-07 12:57:02 +02:00
Anssi Kääriäinen
6fe2b001db
Fixed #21376 -- New implementation for query join promotion logic
...
This commit introduced a new class JoinPromoter that can be used to
abstract away join promotion problems for complex filter conditions.
Query._add_q() and Query.combine() now use the new class.
Also, added a lot of comments about why join promotion is done the way
it is.
Thanks to Tim Graham for original report and testing the changes, and
for Loic Bistuer for review.
2013-11-07 12:53:26 +02:00
Jason Myers
c3791463a5
Fixing E302 Errors
...
Signed-off-by: Jason Myers <jason@jasonamyers.com>
2013-11-02 23:48:47 -05:00
Anssi Kääriäinen
2a03a9a9a1
Fixed syntax error in queries/tests.py
2013-11-02 22:42:42 +02:00
Anssi Kääriäinen
bec0b2a8c6
Fixed #14511 -- bug in .exclude() query
2013-11-02 22:35:45 +02:00
Anssi Kääriäinen
b44d42be6d
Fixed #21366 -- regression in join promotion logic
...
The regression was caused by ecaba36028
and affected OR connected filters.
2013-11-02 20:44:19 +02:00
Alex Gaynor
9d740eb8b1
Fix all violators of E231
2013-10-26 12:15:03 -07:00
Alasdair Nicol
c3aa2948c6
Fixed #21298 -- Fixed E301 pep8 warnings
2013-10-23 13:45:03 +01:00
Tim Graham
ae48d77ef8
Fixed E225 pep8 warnings.
2013-10-23 06:09:29 -04:00
Tim Graham
1597503a01
Fixed E221 pep8 warnings.
2013-10-22 09:51:39 -04:00
Tim Graham
499cd912ca
Fixed E227 pep8 warnings
2013-10-21 08:52:21 -04:00
Alasdair Nicol
b289fcf1bf
Fixed #21288 -- Fixed E126 pep8 warnings
2013-10-21 08:31:30 -04:00
Tim Graham
96d1d4e292
Removed unused local variables in tests.
2013-10-19 08:31:38 -04:00
Alasdair Nicol
bab9123daa
Fixed #21268 -- Fixed E303 pep8 warnings
2013-10-18 01:46:24 +01:00
Tim Graham
b67ab75e82
Fixed assorted flake8 errors.
2013-10-11 07:25:14 -04:00
Anssi Kääriäinen
93cc6dcdac
Fixed #18414 -- qs.exists() for sliced distinct queries
2013-10-05 21:40:36 +03:00
Anssi Kääriäinen
068b1e045f
Simplified a test by using CapturedQueriesContext
2013-10-05 21:16:09 +03:00
Anssi Kääriäinen
ecaba36028
Improved Query join promotion logic
...
There were multiple cases where join promotion was a bit too aggressive.
This resulted in using outer joins where not necessary.
Refs #21150 .
2013-10-05 14:52:17 +03:00
Anssi Kääriäinen
bf13c75c0d
Fixed #21203 -- resolve_columns fields misalignment
...
In queries using .defer() together with .select_related() the values
and fields arguments didn't align properly for resolve_columns().
2013-10-01 20:29:23 +03:00
Simon Charette
c4fdd859ec
Fixed #15786 -- Added a regression test for o2o excludes using F().
...
The issue was reported against 1.3.x but has been fixed since.
2013-09-29 16:45:03 -04:00
Michael Manfre
b0e06c3662
Fixed #21167 - Improved queries.tests.SubqueryTests
...
Improve tests to cover slicing scenarios that could be handled in unique
ways by 3rd party database backends.
2013-09-29 17:35:42 +03:00
Simon Charette
4ec6d281cd
Fixed #21001 -- Added a regression test for empty string exclusion on Oracle.
...
The issue was present in 1.4.x but has been reported to be fixed in master.
Thanks to @timgraham for the patch.
2013-09-23 14:18:03 -04:00
Aymeric Augustin
b4cd8169de
Fixed #11811 -- Data-loss bug in queryset.update.
...
It's now forbidden to call queryset.update(field=instance) when instance
hasn't been saved to the database ie. instance.pk is None.
2013-09-06 17:15:23 -05:00
Tim Graham
5649c0af9d
Fixed "indentation is not a multiple of four" pep8 issues.
2013-09-03 14:22:21 -04:00
Anssi Kääriäinen
8d65b6082c
Fixed #20955 -- select_related regression
...
In cases where the same connection (from model A to model B along the
same field) was needed multiple times in a select_related query, the
join setup code mistakenly reused an existing join.
2013-08-22 10:51:07 +03:00
Anssi Kääriäinen
8dc76c4b91
Fixed test failure caused by different NULL ordering between backends
2013-08-20 11:33:44 +03:00
Anssi Kääriäinen
905409855c
Fixed #14056 -- Made sure LEFT JOIN aren't trimmed in ORDER BY
...
If LEFT JOINs are required for correct results, then trimming the join
can lead to incorrect results. Consider case:
TBL A: ID | TBL B: ID A_ID
1 1 1
2
Now A.order_by('b__a') did use a join to B, and B's a_id column. This
was seen to contain the same value as A's id, and so the join was
trimmed. But this wasn't correct as the join is LEFT JOIN, and for row
A.id = 2 the B.a_id column is NULL.
2013-08-20 10:55:00 +03:00
Anssi Kääriäinen
58c6d0209d
Fixed #12807 -- EmptyResultSet ORed condition
...
The EmptyResultSet wasn't treated correctly so the end results was
incorrect, too. The bug had been already fixed in master so only tests
added.
2013-08-19 16:24:45 +03:00
Anssi Kääriäinen
09a5f5aabe
Fixed test failure on MySQL
...
The fix for #20874 caused a MySQL specific failure.
2013-08-13 15:37:08 +03:00
Anssi Kääriäinen
dcdc579d16
Fixed #20874 -- bump_prefix() in nested subqueries
...
Also made some cleanup to build_filter() code by introducing submethods
solve_lookup_type() and prepare_lookup_value().
2013-08-13 14:11:52 +03:00
Curtis Maloney
07876cf02b
Deprecated SortedDict (replaced with collections.OrderedDict)
...
Thanks Loic Bistuer for the review.
2013-08-04 07:09:39 -04:00
Claude Paroz
5c1143910e
Removed most of absolute_import imports
...
Should be unneeded with Python 2.7 and up.
Added some unicode_literals along the way.
2013-07-29 20:28:13 +02:00
Julien Phalip
47c755327b
Fixed a number of minor misspellings.
2013-07-27 18:46:03 -07:00
Anssi Kääriäinen
7cca8d56d2
Fixed related model lookup regression
...
It has been possible to use models of wrong type in related field
lookups. For example pigs__in=[a_duck] has worked. Changes to
ForeignObject broke that.
It might be a good idea to restrict the model types usable in lookups.
This should be done intentionally, not accidentally and without any
consideration for deprecation path.
2013-07-26 13:13:27 +03:00
Anssi Kääriäinen
c00a8525c6
Fixed #20788 -- exclude() generated subquery failure
...
"Fixed" by adding a test case, the original problem was already fixed
by earlier ORM changes. Thanks to david@judicata.com for the report
and test case.
2013-07-23 13:40:50 +03:00
Tim Graham
2456ffa42c
Fixed #20746 -- Removed Python 2.6 specific code/docs
2013-07-14 13:02:55 -04:00
Aymeric Augustin
cfcf4b3605
Stopped using django.utils.unittest in the test suite.
...
Refs #20680 .
2013-07-01 14:29:33 +02:00
Florian Hahn
2f35c6f10f
Fixed #14930 -- values_list() failure on qs ordered by extra column
...
Thanks lsaffre for the report and simon29, vicould, and Florian Hahn
for the patch.
Some changes done by committer.
2013-06-18 23:56:51 +03:00
Anssi Kääriäinen
89bf7a4525
Fixed #20528 -- regression in select_related join promotion
...
The join used by select_related was incorrectly INNER when the query
had an ORed filter for nullable join that was trimmed away. Fixed this
by forcing the join type to LOUTER even when a join was trimmed away
in ORed queries.
2013-06-14 16:29:06 +03:00
Tim Graham
fffb55860e
Changed assertEquals -> assertEqual.
2013-06-01 06:31:25 -04:00
Anssi Kääriäinen
84909377f2
Fixed #18785 -- Added Test join trimming regression
...
The regression was caused by patch to ticket #15316 and was fixed by a
patch to #10790 .
2013-06-01 00:28:44 +03:00
Tim Graham
7426e72302
Fixed #20250 - Added a regression test for negated Q + annotate
...
Thanks nott.
2013-05-29 08:49:42 -04:00
Anssi Kääriäinen
d467e11785
Fixed #20507 -- SubqueryConstraint alias relabeling
...
The SubqueryConstraint defined relabeled_clone(), but that was never
called. Instead there is now clone() and relabel_aliases() methods for
SubqueryConstraint.
A related problem was that SubqueryConstraint didn't correctly use
quote_name_unless_alias() of the outer query. This resulted in failures
when running under PostgreSQL.
2013-05-27 12:25:29 +03:00
Anssi Kääriäinen
904084611d
Fixed #19895 -- Second iterator over invalid qs raises errors
...
The fix was already in the patch for #18702 , so only test added for
ticket #19895 .
2013-05-22 08:30:41 +03:00
Anssi Kääriäinen
70679243d1
Fixed #18702 -- Removed chunked reads from QuerySet iteration
2013-05-21 19:51:59 +03:00
Anssi Kääriäinen
f53059b411
Fixed qs.values() regression when used in subquery
2013-05-20 15:38:47 +03:00
Anssi Kääriäinen
e17fa9e877
Fixed #20091 -- Oracle null promotion for empty strings
2013-03-26 14:19:54 +02:00