| Age | Commit message (Expand) | Author |
| 2022-04-11 | [4.0.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), a... | Mariusz Felisiak |
| 2022-02-08 | [4.0.x] Refs #33476 -- Refactored code to strictly match 88 characters line l... | Mariusz Felisiak |
| 2022-02-08 | [4.0.x] Refs #33476 -- Reformatted code with Black. | django-bot |
| 2022-02-03 | [4.0.x] Refs #33476 -- Refactored problematic code before reformatting by Black. | Mariusz Felisiak |
| 2021-09-29 | [4.0.x] Fixed #33018 -- Fixed annotations with empty queryset. | David Wobrock |
| 2021-07-07 | Used more specific unittest assertions in tests. | Mads Jensen |
| 2021-01-14 | Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. | Mariusz Felisiak |
| 2020-12-10 | Fixed #32178 -- Allowed database backends to skip tests and mark expected fai... | Hasan Ramezani |
| 2020-11-27 | Fixed #25534, Fixed #31639 -- Added support for transform references in expre... | Ian Foote |
| 2020-11-19 | Fixed #32200 -- Fixed grouping by ExpressionWrapper() with Q objects. | Hasan Ramezani |
| 2020-10-29 | Fixed #32152 -- Fixed grouping by subquery aliases. | Christian Klus |
| 2020-09-16 | Refs #32007 -- Skipped test_q_expression_annotation_with_aggregation on Oracle. | Mariusz Felisiak |
| 2020-09-15 | Fixed #32007 -- Fixed queryset crash with Q() annotation and aggregation. | Mariusz Felisiak |
| 2020-08-17 | Fixed #31888 -- Avoided module-level MySQL queries in tests. | Ahmad A. Hussein |
| 2020-07-31 | Fixed #27719 -- Added QuerySet.alias() to allow creating reusable aliases. | Alexandr Tatarinov |
| 2020-07-30 | Bumped minimum isort version to 5.1.0. | David Smith |
| 2020-07-15 | Refs #30446 -- Removed unnecessary Value(..., output_field) in docs and tests. | Simon Charette |
| 2020-07-09 | Fixed #31773 -- Fixed preserving output_field in ExpressionWrapper for combin... | Mariusz Felisiak |
| 2020-06-12 | Fixed #31659 -- Made ExpressionWrapper preserve output_field for combined exp... | Mariusz Felisiak |
| 2020-06-08 | Fixed #31660 -- Fixed queryset crash when grouping by m2o relation. | Mariusz Felisiak |
| 2020-05-14 | Fixed #31584 -- Fixed crash when chaining values()/values_list() after Exists... | Mariusz Felisiak |
| 2020-05-14 | Fixed #31566 -- Fixed aliases crash when chaining values()/values_list() afte... | Simon Charette |
| 2019-11-18 | Relaxed some query ordering assertions in tests. | Tim Graham |
| 2019-07-11 | Fixed #28289 -- Fixed crash of RawSQL annotations on inherited model fields. | can |
| 2019-03-21 | Refs #29542, #30158 -- Enabled a HAVING subquery filter test on Oracle. | Simon Charette |
| 2018-07-14 | Fixed #29542 -- Fixed invalid SQL if a Subquery from the HAVING clause is use... | Mariusz Felisiak |
| 2018-07-02 | Fixed #29530 -- Fixed aliases ordering when chaining annotate() and filter(). | Mariusz Felisiak |
| 2018-05-27 | Fixed #29416 -- Removed unnecesary subquery from GROUP BY clause on MySQL whe... | Mariusz Felisiak |
| 2018-03-20 | Fixed #29227 -- Allowed BooleanField to be null=True. | Tim Graham |
| 2018-03-16 | Fixed hanging indentation in various code. | Mariusz Felisiak |
| 2018-01-03 | Fixed #28811 -- Fixed crash when combining regular and group by annotations. | Robin Ramael |
| 2017-12-21 | Refs #23941 -- Prevented incorrect rounding of DecimalField annotations on SQ... | Sergey Fedoseev |
| 2017-08-10 | Refs #18247 -- Fixed filtering on CombinedExpression(output_field=DecimalFiel... | Sergey Fedoseev |
| 2017-06-29 | Fixed #28277 -- Added validation of QuerySet.annotate() and aggregate() args. | Mariusz Felisiak |
| 2017-06-01 | Refs #23968 -- Removed unnecessary lists, generators, and tuple calls. | Jon Dufresne |
| 2017-03-29 | Fixed #25414 -- Fixed QuerySet.annotate() with pk in values() on MySQL. | Mariusz Felisiak |
| 2017-01-31 | Fixed #27800 -- Fixed QuerySet.annotate(Length(...)).distinct() crash. | Lex Berezhny |
| 2017-01-18 | Refs #23919 -- Removed six.PY2/PY3 usage | Claude Paroz |
| 2017-01-18 | Refs #23919 -- Removed encoding preambles and future imports | Claude Paroz |
| 2016-11-14 | Fixed #27481 -- Made SQLite return annotated boolean values as boolean, not i... | Sergey Fedoseev |
| 2016-11-10 | Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings. | za |
| 2016-09-17 | Made FieldError/FieldDoesNotExist messages uniform across Python versions. | François Freitag |
| 2016-08-08 | Fixed #26517 -- Fixed ExpressionWrapper with empty queryset. | Johannes Dollinger |
| 2016-03-28 | Sorted single letter imports per the latest version of isort. | Tim Graham |
| 2016-02-05 | Fixed #26176 -- Fixed E123 flake8 warnings. | Tim Graham |
| 2015-08-15 | Fixed #24986 -- Added support for annotations in DISTINCT queries. | Valentina Mukhamedzhanova |
| 2015-08-14 | Refs #23843 -- Updated Oracle annotations workaround to reflect latest status. | Tim Graham |
| 2015-05-25 | Fixed #24835 -- Fixed QuerySet.exists() after an annotation with Count() | Paweł Marczewski |
| 2015-03-22 | Fixed #24485 -- Allowed combined expressions to set output_field | Josh Smeaton |
| 2015-03-22 | Fixed #24508 -- Made annotations commutative | Josh Smeaton |