<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/db/models/sql/query.py, branch 4.0.6</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=4.0.6</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=4.0.6'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2022-04-11T07:02:58Z</updated>
<entry>
<title>[4.0.x] Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against SQL injection on PostgreSQL.</title>
<updated>2022-04-11T07:02:58Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2022-04-01T11:48:47Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=00b0fc50e1738c7174c495464a5ef069408a4402'/>
<id>urn:sha1:00b0fc50e1738c7174c495464a5ef069408a4402</id>
<content type='text'>
Backport of 6723a26e59b0b5429a0c5873941e01a2e1bdbb81 from main.
</content>
</entry>
<entry>
<title>[4.0.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), and extra() against SQL injection in column aliases.</title>
<updated>2022-04-11T07:02:14Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2022-04-01T06:10:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=800828887a0509ad1162d6d407e94d8de7eafc60'/>
<id>urn:sha1:800828887a0509ad1162d6d407e94d8de7eafc60</id>
<content type='text'>
Thanks Splunk team: Preston Elder, Jacob Davis, Jacob Moore,
Matt Hanson, David Briggs, and a security researcher: Danylo Dmytriiev
(DDV_UA) for the report.

Backport of 93cae5cb2f9a4ef1514cf1a41f714fef08005200 from main.
</content>
</entry>
<entry>
<title>[4.0.x] Fixed #33598 -- Reverted "Removed unnecessary reuse_with_filtered_relation argument from Query methods."</title>
<updated>2022-03-30T05:32:38Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2022-03-30T05:31:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7d540d67a8fb17f820e1657ccb1509af86b27582'/>
<id>urn:sha1:7d540d67a8fb17f820e1657ccb1509af86b27582</id>
<content type='text'>
Thanks lind-marcus for the report.

This reverts commit 0c71e0f9cfa714a22297ad31dd5613ee548db379.

Regression in 0c71e0f9cfa714a22297ad31dd5613ee548db379.
Backport of fac662f4798f7e4e0ed9be6b4fb4a87a80810a68 from main
</content>
</entry>
<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>
</feed>
