<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/db/models/sql/query.py, branch 4.0.3</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=4.0.3</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=4.0.3'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2022-02-08T18:25:02Z</updated>
<entry>
<title>[4.0.x] Refs #33476 -- Refactored code to strictly match 88 characters line length.</title>
<updated>2022-02-08T18:25:02Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2022-02-08T11:27:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=3278c31fa59b41d03aea167f4cf85f4ddf7f848d'/>
<id>urn:sha1:3278c31fa59b41d03aea167f4cf85f4ddf7f848d</id>
<content type='text'>
Backport of 7119f40c9881666b6f9b5cf7df09ee1d21cc8344 from main.
</content>
</entry>
<entry>
<title>[4.0.x] Refs #33476 -- Reformatted code with Black.</title>
<updated>2022-02-08T11:15:38Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2022-02-08T11:09:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=6a682b38e75d4c975b4c4493565a59f1bc14397c'/>
<id>urn:sha1:6a682b38e75d4c975b4c4493565a59f1bc14397c</id>
<content type='text'>
Backport of 9c19aff7c7561e3a82978a272ecdaad40dda5c00 from main.
</content>
</entry>
<entry>
<title>[4.0.x] Refs #33476 -- Refactored problematic code before reformatting by Black.</title>
<updated>2022-02-03T10:38:46Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2022-02-03T10:20:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d55a1e5809b424907528af42bfdfc2991ef11651'/>
<id>urn:sha1:d55a1e5809b424907528af42bfdfc2991ef11651</id>
<content type='text'>
In these cases Black produces unexpected results, e.g.

def make_random_password(
    self,
    length=10,
    allowed_chars='abcdefghjkmnpqrstuvwxyz' 'ABCDEFGHJKLMNPQRSTUVWXYZ' '23456789',
):

or

cursor.execute("""
SELECT ...
""",
    [table name],
)

Backport of c5cd8783825b5f6384417dac5f3889b4210b7d08 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>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>
</feed>
