<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/db/models/sql, branch 4.0</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=4.0</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=4.0'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2021-09-30T09:26:53Z</updated>
<entry>
<title>[4.0.x] Fixed #33159 -- Reverted "Fixed #32970 -- Changed WhereNode.clone() to create a shallow copy of children."</title>
<updated>2021-09-30T09:26:53Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2021-09-30T09:26:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=93a42d43a6995993b9bbcb743ab3c2a2b8414ebd'/>
<id>urn:sha1:93a42d43a6995993b9bbcb743ab3c2a2b8414ebd</id>
<content type='text'>
This reverts commit e441847ecae99dd1ccd0d9ce76dbcff51afa863c.

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.
Backport of 903aaa35e5ceaa33bfc9b19b7f6da65ce5a91dd4 from main
</content>
</entry>
<entry>
<title>[4.0.x] Fixed #33018 -- Fixed annotations with empty queryset.</title>
<updated>2021-09-29T18:53:16Z</updated>
<author>
<name>David Wobrock</name>
<email>david.wobrock@gmail.com</email>
</author>
<published>2021-09-28T22:00:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=b2a0978610413e4cd5ebb716b8bfa7803dff8d5b'/>
<id>urn:sha1:b2a0978610413e4cd5ebb716b8bfa7803dff8d5b</id>
<content type='text'>
Thanks Simon Charette for the review and implementation idea.

Backport of dd1fa3a31b4680c0d3712e6ae122b878138580c7 from main
</content>
</entry>
<entry>
<title>[4.0.x] Fixed #33141 -- Renamed Expression.empty_aggregate_value to empty_result_set_value.</title>
<updated>2021-09-29T18:52:59Z</updated>
<author>
<name>David Wobrock</name>
<email>david.wobrock@gmail.com</email>
</author>
<published>2021-09-24T20:05:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=aab76433ed585ebe997b94547e0d790605e01ad9'/>
<id>urn:sha1:aab76433ed585ebe997b94547e0d790605e01ad9</id>
<content type='text'>
Backport of ad36a198a12df4dff65992191b3eb0a474e2daac from main
</content>
</entry>
<entry>
<title>Refs #27624 -- Optimized Query.clone() for non-combined queries.</title>
<updated>2021-09-20T10:34:18Z</updated>
<author>
<name>Keryn Knight</name>
<email>keryn@kerynknight.com</email>
</author>
<published>2021-09-16T10:03:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=5353e7c2505c0d0ab8232ad9c131b3c99c833988'/>
<id>urn:sha1:5353e7c2505c0d0ab8232ad9c131b3c99c833988</id>
<content type='text'>
This avoids constructing a generator expression and a new tuple if the
Query has no combined queries.
</content>
</entry>
<entry>
<title>Fixed #32970 -- Changed WhereNode.clone() to create a shallow copy of children.</title>
<updated>2021-09-20T05:03:10Z</updated>
<author>
<name>Keryn Knight</name>
<email>keryn@kerynknight.com</email>
</author>
<published>2021-07-26T18:19:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=e441847ecae99dd1ccd0d9ce76dbcff51afa863c'/>
<id>urn:sha1:e441847ecae99dd1ccd0d9ce76dbcff51afa863c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #27624 -- Changed Query.explain_info to namedtuple.</title>
<updated>2021-09-17T05:15:12Z</updated>
<author>
<name>Adam Johnson</name>
<email>me@adamj.eu</email>
</author>
<published>2021-09-14T17:08:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=fc91ea1e50e5ef207f0f291b3f6c1942b10db7c7'/>
<id>urn:sha1:fc91ea1e50e5ef207f0f291b3f6c1942b10db7c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Optimized Query.clone() a bit.</title>
<updated>2021-09-17T05:12:56Z</updated>
<author>
<name>Adam Johnson</name>
<email>me@adamj.eu</email>
</author>
<published>2021-09-17T05:08:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=2931d847c246b6f499993e370f6d9a53a83120d2'/>
<id>urn:sha1:2931d847c246b6f499993e370f6d9a53a83120d2</id>
<content type='text'>
This removes unnecessary "if ... is None" branches, which are already
shallow-copied in the __dict__.copy() call.
</content>
</entry>
<entry>
<title>Fixed #33073 -- Fixed queryset crash with aggregation and empty/extra queryset annotation.</title>
<updated>2021-09-01T18:59:16Z</updated>
<author>
<name>David Wobrock</name>
<email>david.wobrock@gmail.com</email>
</author>
<published>2021-08-31T20:37:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=691486a5cf7588c95250a873c5b57748e82fc4c2'/>
<id>urn:sha1:691486a5cf7588c95250a873c5b57748e82fc4c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #33025 -- Avoided accessing the database connections in Query.build_lookup() when not necessary.</title>
<updated>2021-08-19T11:28:59Z</updated>
<author>
<name>Keryn Knight</name>
<email>keryn@kerynknight.com</email>
</author>
<published>2021-08-14T14:30:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=bf5abf1bdcedb15e949db419c61eeec7c88414ea'/>
<id>urn:sha1:bf5abf1bdcedb15e949db419c61eeec7c88414ea</id>
<content type='text'>
Of the built-in backends, only Oracle treats empty strings and nulls as
equal, so avoid testing the default connection backend for
interprets_empty_strings_as_nulls if it can be established from the
lookup that it wouldn't affect the lookup instance returned. This
improves performance a small amount for most lookups being built,
because accessing the connections requires touching the thread critical
`Local` which is an expensive operation.
</content>
</entry>
<entry>
<title>Removed unnecessary WhereNode.is_summary.</title>
<updated>2021-08-09T17:23:29Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2021-08-09T17:23:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=b64db05b9cedd96905d637a2d824cbbf428e40e7'/>
<id>urn:sha1:b64db05b9cedd96905d637a2d824cbbf428e40e7</id>
<content type='text'>
Unnecessary since its introduction in 1df89a60c5b7a28d7fda4c9ba7c07f02fd7de0fa.</content>
</entry>
</feed>
