Mariusz Felisiak
903aaa35e5
Fixed #33159 -- Reverted "Fixed #32970 -- Changed WhereNode.clone() to create a shallow copy of children."
...
This reverts commit e441847eca
.
A shallow copy is not enough because querysets can be reused and
evaluated in nested nodes, which shouldn't mutate JOIN aliases.
Thanks Michal Čihař for the report.
2021-09-30 11:26:17 +02:00
Daniyal
f479df7f8d
Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models.
...
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2021-07-15 11:43:33 +02:00
Simon Charette
b81c7562fc
Fixed #32717 -- Fixed filtering of querysets combined with the | operator.
...
Address a long standing bug in a Where.add optimization to discard
equal nodes that was surfaced by implementing equality for Lookup
instances in bbf141bcdc
.
Thanks Shaheed Haque for the report.
2021-05-13 07:26:52 +02:00
Hasan Ramezani
8de4ca74ba
Fixed #32693 -- Quoted and lowercased generated column aliases.
2021-05-04 07:36:56 +02:00
Mariusz Felisiak
c3278bb71f
Used assertCountEqual() in ExcludeTests.test_exclude_subquery().
2021-04-22 10:47:10 +02:00
Simon Charette
6d0cbe42c3
Fixed #32650 -- Fixed handling subquery aliasing on queryset combination.
...
This issue started manifesting itself when nesting a combined subquery
relying on exclude() since 8593e162c9
but
sql.Query.combine never properly handled subqueries outer refs in the
first place, see QuerySetBitwiseOperationTests.test_subquery_aliases()
(refs #27149 ).
Thanks Raffaele Salmaso for the report.
2021-04-21 09:49:15 +02:00
Mariusz Felisiak
ba9a2b7544
Refs #32508 -- Raised TypeError instead of using "assert" on unsupported operations for sliced querysets.
2021-03-10 09:16:28 +01:00
Mariusz Felisiak
06eec31970
Refs #7098 -- Removed support for passing raw column aliases to order_by().
...
Per deprecation timeline.
2021-01-14 17:50:04 +01:00
Hasan Ramezani
3f7b327562
Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly.
...
This also replaces assertQuerysetEqual() to
assertSequenceEqual()/assertCountEqual() where appropriate.
Co-authored-by: Peter Inglesby <peter.inglesby@gmail.com>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-11-06 09:24:50 +01:00
Simon Charette
8593e162c9
Fixed #32143 -- Used EXISTS to exclude multi-valued relationships.
...
As mentioned in the pre-existing split_exclude() docstring EXISTS is
easier to optimize for query planers and circumvents the IN (NULL)
handling issue.
2020-10-28 07:22:00 +01:00
Tim Graham
73be11a266
Removed an obsolete query test that assumes serial pks.
...
The code from the original fix (922aba3def
)
was removed in 419de7b00d
.
2020-10-27 06:31:26 +01:00
Kwist
981a072dd4
Fixed #31843 -- Fixed pickling named values from QuerySet.values_list().
2020-09-16 13:43:06 +02:00
Mariusz Felisiak
e11d05e0b4
Fixed #31990 -- Fixed QuerySet.ordered for GROUP BY queries on models with Meta.ordering.
...
Regression in 0ddb4ebf7b
.
Thanks Julien Dutriaux for the report.
2020-09-14 20:07:44 +02:00
Hasan Ramezani
9c9a3fe118
Fixed #31783 -- Fixed crash when filtering againts "negate" field.
...
Thanks Simon Charette for the initial patch.
2020-07-29 08:20:58 +02:00
Jacob Walls
512da9d585
Fixed #23797 -- Fixed QuerySet.exclude() when rhs is a nullable column.
2020-07-06 10:15:37 +02:00
Nicolas Baccelli
b38d44229f
Fixed #31664 -- Reallowed using non-expressions having filterable attribute as rhs in queryset filters.
...
Regression in 4edad1ddf6
.
2020-06-08 08:17:23 +02:00
Simon Charette
94f63b926f
Refs #31395 -- Relied on setUpTestData() test data isolation in various tests.
2020-05-15 20:22:56 +02:00
Simon Charette
1dd96f731d
Refs #13227 -- Adjusted a test to avoid making a shared test model unpickable.
...
This allowed the Note model to be used in setUpTestData() which requires
assigned model instances to be copy.deepcopy()'able.
2020-05-15 20:22:51 +02:00
Simon Charette
513948735b
Fixed #31426 -- Added proper field validation to QuerySet.order_by().
...
Resolve the field reference instead of using fragile regex based string
reference validation.
2020-04-06 10:19:49 +02:00
Simon Charette
98ea4f0f46
Refs #7098 -- Deprecated passing raw column aliases to order_by().
...
Now that order_by() has expression support passing RawSQL() can achieve
the same result.
This was also already supported through QuerySet.extra(order_by) for
years but this API is more or less deprecated at this point.
2020-04-06 10:01:02 +02:00
Jon Dufresne
e649d691f8
Removed unnecessary parentheses in various code.
2019-11-18 15:25:59 +01:00
Simon Charette
13a8884a08
Fixed #30739 -- Fixed exclusion of multi-valued lookup against outer rhs.
...
OuterRef right hand sides have to be nested, just like F rhs have to,
during the subquery pushdown split_exclude performs to ensure they are
resolved against the outer query aliases.
2019-09-02 10:52:36 +02:00
Diederik van der Boor
25f21bd237
Fixed #28393 -- Added helpful error messages for invalid AutoField/FloatField/IntegerField values.
...
Co-authored-by: Diederik van der Boor <vdboor@edoburu.nl>
Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2019-08-05 08:41:29 +02:00
Jon Dufresne
d89053585e
Improved error message when index in __getitem__() is invalid.
2019-07-23 20:12:08 +02:00
Simon Charette
ee6e93ec87
Fixed #30628 -- Adjusted expression identity to differentiate bound fields.
...
Expressions referring to different bound fields should not be
considered equal.
Thanks Julien Enselme for the detailed report.
Regression in bc7e288ca9
.
2019-07-10 07:46:08 +02:00
can
325d5d6445
Fixed #30477 -- Made reverse lookup use Field.get_db_prep_value() from the target field.
2019-06-25 10:20:33 +02:00
Simon Charette
0cb4062482
Refs #23758 -- Used RecursionError instead of RuntimeError to raise nested subquery errors.
...
RecursionError was introduced in Python 3.5 and subclasses RuntimeError.
2019-04-15 15:20:41 +02:00
Simon Charette
c0969ee227
Refs #27149 -- Based recursive nested subquery detection on sys.getrecursionlimit().
...
This makes sure the test_avoid_infinite_loop_on_too_many_subqueries test
doesn't fail on systems with a non-default recursion limit.
2019-04-15 15:20:41 +02:00
can
96446c7152
Refs #29697 -- Added test for excluding m2m intermediary table.
2019-03-30 14:46:59 +01:00
Mariusz Felisiak
9ab1d55596
Refs #18726 -- Added test for excluding circular related fields with F() expression.
...
Fixed in f19a4945e1
.
2019-03-28 07:10:54 +01:00
Simon Charette
f19a4945e1
Fixed #21703 -- Fixed a crash when excluding a related field with a F().
2019-03-23 09:48:28 -04:00
Simon Charette
3543129822
Refs #27149 -- Moved subquery expression resolving to Query.
...
This makes Subquery a thin wrapper over Query and makes sure it respects
the Expression source expression API by accepting the same number of
expressions as it returns. Refs #30188 .
It also makes OuterRef usable in Query without Subquery wrapping. This
should allow Query's internals to more easily perform subquery push downs
during split_exclude(). Refs #21703 .
2019-03-21 20:36:31 -04:00
Sergey Fedoseev
1933e56eca
Removed uneeded generator expressions and list comprehensions.
2019-02-09 09:18:48 -05:00
Nick Pope
24b82cd201
Fixed #30159 -- Removed unneeded use of OrderedDict.
...
Dicts preserve order since Python 3.6.
2019-02-06 13:48:39 -05:00
Tim Graham
193c109327
Switched TestCase to SimpleTestCase where possible in Django's tests.
2018-11-27 08:58:44 -05:00
Ian Foote
e1fc07c047
Fixed #17930 -- Allowed ORing (|) with sliced QuerySets.
2018-11-15 09:43:58 -05:00
Mariusz Felisiak
024abe5b82
Fixed #29630 -- Fixed crash of sliced queries with multiple columns with the same name on Oracle 12.1.
...
Regression in 0899d583bd
.
Thanks Tim Graham for the review and Jani Tiainen for help.
2018-09-26 20:18:48 +02:00
Ramiro Morales
1b1f64ee5a
Refs #14357 -- Deprecated Meta.ordering affecting GROUP BY queries.
...
Thanks Ramiro Morales for contributing to the patch.
2018-09-13 12:29:48 -04:00
Josh Schneier
4d48ddd8f9
Fixed #28917 -- Prevented Paginator's unordered warning on EmptyQuerySet.
...
Thanks carltongibson for the idea and weijunji for the initial patch.
2018-07-16 14:28:47 -04:00
Sergey Fedoseev
c9088cfc7b
Fixed some assertTrue() that were intended to be assertEqual().
2018-07-09 11:13:40 -04:00
Carlton Gibson
c4f099de1d
Refs #29451 -- Used quote_name for column names in tests.
...
Regression in a253a580e6
2018-06-06 16:13:25 +02:00
Tom Forbes
a253a580e6
Refs #29451 -- Quoted MySQL column names in tests.
2018-06-05 12:13:29 +02:00
Mariusz Felisiak
362813d628
Fixed hanging indentation in various code.
2018-03-16 10:54:34 +01:00
Simon Charette
d61fe24601
Fixed #29108 -- Fixed crash in aggregation of distinct+ordered+sliced querysets.
...
Regression in 4acae21846
.
Thanks Stephen Brooks for the report.
2018-02-08 09:59:25 -05:00
Mariusz Felisiak
34b52f8572
Renamed the allow_sliced_subqueries database feature to allow_sliced_subqueries_with_in.
...
After 0899d583bd
this database feature is
false only on MySQL which doesn't support sliced subqueries only with
IN/ALL/ANY/SOME.
2018-02-07 08:27:47 +01:00
Mariusz Felisiak
aad1833fa0
Refs #20487 -- Added test for querying mixed case fields with common related model.
...
Thanks Shai Berger for the review.
2018-01-20 20:48:01 +01:00
Mariusz Felisiak
83a36ac49a
Removed unnecessary trailing commas and spaces in various code.
2017-12-28 21:07:29 +01:00
Sergey Fedoseev
f3c9562143
Fixed #15648 -- Allowed QuerySet.values_list() to return a namedtuple.
2017-09-06 15:32:32 -04:00
François Freitag
ad4a8acdb5
Fixed #11557 -- Added support for a list of fields in Meta.get_latest_by and QuerySet.earliest()/latest().
2017-09-05 20:14:54 -04:00
Mads Jensen
a51c4de194
Used assertRaisesMessage() to test Django's error messages.
2017-07-29 19:07:23 -04:00