1
0
mirror of https://github.com/django/django.git synced 2025-04-25 17:54:37 +00:00

9 Commits

Author SHA1 Message Date
Simon Charette
d5add5d3a2 [3.2.x] Fixed #32632, Fixed #32657 -- Removed flawed support for Subquery deconstruction.
Subquery deconstruction support required implementing complex and
expensive equality rules for sql.Query objects for little benefit as
the latter cannot themselves be made deconstructible to their reference
to model classes.

Making Expression @deconstructible and not BaseExpression allows
interested parties to conform to the "expression" API even if they are
not deconstructible as it's only a requirement for expressions allowed
in Model fields and meta options (e.g. constraints, indexes).

Thanks Phillip Cutter for the report.

This also fixes a performance regression in bbf141bcdc31f1324048af9233583a523ac54c94.

Backport of c8b659430556dca0b2fe27cf2ea0f8290dbafecd from main
2021-04-28 20:27:42 +02:00
Jonathan Richards
d0267690f8 [3.2.x] Fixed #32548 -- Fixed crash when combining Q() objects with boolean expressions.
Backport of 00b0786de533dbb3f6208d8d5eaddbf765b4e5b8 from main.

Regression in 466920f6d726eee90d5566e0a9948e92b33a122e.
2021-04-14 19:46:45 +02:00
starryrbs
0e2979e95d [3.2.x] Fixed #32450 -- Fixed crash when ANDing/ORing an empty Q() with not pickleable Q().
Regression in bb0b6e526340e638522e093765e534df4e4393d2.

Backport of 466920f6d726eee90d5566e0a9948e92b33a122e from master
2021-02-18 22:06:36 +01:00
Mads Jensen
c59aa9e6aa Added test for combining Q objects with non-Q objects. 2018-03-29 13:58:55 -04:00
Tim Graham
9ba3df8240 Refs #29125 -- Made Q.deconstruct() omit 'query_utils' in the path and _connector='AND' since it's a default value. 2018-02-12 15:23:41 -05:00
Tim Graham
b95c49c954 Fixed #29125 -- Made Q.deconstruct() deterministic with multiple keyword arguments. 2018-02-12 14:52:32 -05:00
Tom
bb0b6e5263 Fixed #28211 -- Prevented ORing an empty Q() from reducing query join efficiency. 2017-05-25 09:06:25 -04:00
Tim Graham
1c3a6cec2a Refs #28211 -- Added a test for ANDing empty Q()'s.
This test passes to due some logic in Node.add().
2017-05-25 09:02:13 -04:00
Ian Foote
508b5debfb Refs #11964 -- Made Q objects deconstructible. 2017-02-23 20:47:48 -05:00