| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2020-08-13 | Fixed #31792 -- Made Exists() reuse QuerySet.exists() optimizations. | Simon Charette | |
| The latter is already optimized to limit the number of results, avoid selecting unnecessary fields, and drop ordering if possible without altering the semantic of the query. | |||
| 2020-08-11 | Fixed #31866 -- Fixed locking proxy models in QuerySet.select_for_update(of=()). | Daniel Hillier | |
| 2020-07-31 | Fixed #27719 -- Added QuerySet.alias() to allow creating reusable aliases. | Alexandr Tatarinov | |
| QuerySet.alias() allows creating reusable aliases for expressions that don't need to be selected but are used for filtering, ordering, or as a part of complex expressions. Thanks Simon Charette for reviews. | |||
| 2020-07-09 | Fixed #29789 -- Added support for nested relations to FilteredRelation. | matt ferrante | |
| 2020-07-07 | Fixed #31767 -- Fixed QuerySet.none() on combined queryset. | Mariusz Felisiak | |
| 2020-07-06 | Fixed #23797 -- Fixed QuerySet.exclude() when rhs is a nullable column. | Jacob Walls | |
| 2020-06-10 | Fixed #31657 -- Fixed ordering by attnames of self-referential ForeignKeys. | Hasan Ramezani | |
| 2020-06-08 | Fixed #31664 -- Reallowed using non-expressions having filterable attribute ↵ | Nicolas Baccelli | |
| as rhs in queryset filters. Regression in 4edad1ddf6203326e0be4bdb105beecb0fe454c4. | |||
| 2020-05-26 | Fixed #31614 -- Fixed aliases ordering by OrderBy() expressions of combined ↵ | Laurent Tramoy | |
| queryset. | |||
| 2020-05-25 | Fixed #31624 -- Avoided subquery usage on QuerySet.all().delete(). | Simon Charette | |
| Thanks Adam Johnson for the report. Regression in 7acef095d73322f45dcceb99afa1a4e50b520479. | |||
| 2020-05-21 | Fixed #30375 -- Added FOR NO KEY UPDATE support to ↵ | Manuel Weitzman | |
| QuerySet.select_for_update() on PostgreSQL. | |||
| 2020-05-14 | Fixed #31584 -- Fixed crash when chaining values()/values_list() after ↵ | Mariusz Felisiak | |
| Exists() annotation and aggregation on Oracle. Oracle requires the EXISTS expression to be wrapped in a CASE WHEN in the GROUP BY clause. Regression in efa1908f662c19038a944129c81462485c4a9fe8. | |||
| 2020-05-14 | Fixed #31568 -- Fixed alias reference when aggregating over multiple subqueries. | Simon Charette | |
| 691def10a0197d83d2d108bd9043b0916d0f09b4 made all Subquery() instances equal to each other which broke aggregation subquery pushdown which relied on object equality to determine which alias it should select. Subquery.__eq__() will be fixed in an another commit but Query.rewrite_cols() should haved used object identity from the start. Refs #30727, #30188. Thanks Makina Corpus for the report. | |||
| 2020-05-14 | Fixed #31566 -- Fixed aliases crash when chaining values()/values_list() ↵ | Simon Charette | |
| after annotate() with aggregations and subqueries. Subquery annotation references must be resolved if they are excluded from the GROUP BY clause by a following .values() call. Regression in fb3f034f1c63160c0ff13c609acd01c18be12f80. Thanks Makina Corpus for the report. | |||
| 2020-05-11 | Refs #30116 -- Simplified regex match group access with Match.__getitem__(). | Jon Dufresne | |
| The method has been available since Python 3.6. The shorter syntax is also marginally faster. | |||
| 2020-04-22 | Avoided unnecessary recompilation of ordering clause regex in SQLCompiler. | Adam Johnson | |
| 2020-04-06 | Fixed #31426 -- Added proper field validation to QuerySet.order_by(). | Simon Charette | |
| Resolve the field reference instead of using fragile regex based string reference validation. | |||
| 2020-04-06 | Refs #7098 -- Deprecated passing raw column aliases to order_by(). | Simon Charette | |
| Now that order_by() has expression support passing RawSQL() can achieve the same result. This was also already supported through QuerySet.extra(order_by) for years but this API is more or less deprecated at this point. | |||
| 2020-04-06 | Fixed #31420 -- Fixed crash when filtering subquery annotation against a ↵ | Hasan Ramezani | |
| SimpleLazyObject. Thanks Simon Charette for the solution and analysis. | |||
| 2020-03-31 | Refs #31403 -- Made SQLInsertCompiler.execute_sql() always return an ↵ | Adam Johnson | |
| iterable of rows. List of tuples. | |||
| 2020-03-25 | Fixed #31377 -- Disabled grouping by aliases on ↵ | Hasan Ramezani | |
| QuerySet.values()/values_list() when they collide with field names. Regression in fb3f034f1c63160c0ff13c609acd01c18be12f80. Thanks Holovashchenko Vadym for the report. | |||
| 2020-03-19 | Fixed #31285 -- Fixed inherited Meta.ordering of "-pk". | Jon Dufresne | |
| 2020-02-11 | Fixed #31246 -- Fixed locking models in QuerySet.select_for_update(of=()) ↵ | Abhijeet Viswa | |
| for related fields and parent link fields with multi-table inheritance. Partly regression in 0107e3d1058f653f66032f7fd3a0bd61e96bf782. | |||
| 2020-02-06 | Fixed #31233 -- Closed database connections and cursors after use. | Jon Dufresne | |
| 2020-02-04 | Simplified imports from django.db and django.contrib.gis.db. | Nick Pope | |
| 2020-02-03 | Fixed #31217 -- Made QuerySet.values()/values_list() group by not selected ↵ | Mariusz Felisiak | |
| annotations with aggregations used in order_by(). Regression in 59b4e99dd00b9c36d56055b889f96885995e4240. Thanks Jon Dufresne for the report and Simon Charette for the review. | |||
| 2020-01-15 | Refs #31136 -- Made QuerySet.values()/values_list() group only by selected ↵ | Mariusz Felisiak | |
| annotation. Regression in 0f843fdd5b9b2f2307148465cd60f4e1b2befbb4. | |||
| 2020-01-04 | Fixed #31136 -- Disabled grouping by aliases on QuerySet.values()/values_list(). | Mariusz Felisiak | |
| Regression in fb3f034f1c63160c0ff13c609acd01c18be12f80. Thanks Sigurd Ljødal for the report. | |||
| 2019-12-23 | Fixed #31109 -- Disabled grouping by aliases on QuerySet.exists(). | Simon Charette | |
| Clearing the SELECT clause in Query.has_results was orphaning GROUP BY references to it. Thanks Thierry Bastian for the report and Baptiste Mispelon for the bisect. Regression in fb3f034f1c63160c0ff13c609acd01c18be12f80. | |||
| 2019-12-19 | Fixed #31094 -- Included columns referenced by subqueries in GROUP BY on ↵ | Simon Charette | |
| aggregations. Thanks Johannes Hoppe for the report. Regression in fb3f034f1c63160c0ff13c609acd01c18be12f80. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2019-12-10 | Used Signature API instead of deprecated inspect.getcallargs(). | Baptiste Mispelon | |
| inspect.getcallargs() was deprecated in Python 3.5 and the Signature API (PEP 362) has better support for decorated functions (by default, it follows the __wrapped__ attribute set by functools.wraps for example). | |||
| 2019-12-06 | Made Query.check_filterable() use bool by default instead of str. | Alex Aktsipetrov | |
| 2019-12-06 | Fixed #31060 -- Reallowed window expressions to be used in conditions ↵ | Alex Aktsipetrov | |
| outside of queryset filters. Regression in 4edad1ddf6203326e0be4bdb105beecb0fe454c4. Thanks utapyngo for the report. | |||
| 2019-12-02 | Fixed #30953 -- Made select_for_update() lock queryset's model when using ↵ | Mariusz Felisiak | |
| "self" with multi-table inheritance. Thanks Abhijeet Viswa for the report and initial patch. | |||
| 2019-11-21 | Refs #25367 -- Made Query.build_filter() raise TypeError on non-conditional ↵ | Simon Charette | |
| expressions. | |||
| 2019-11-21 | Fixed #30484 -- Added conditional expressions support to CheckConstraint. | Simon Charette | |
| 2019-11-21 | Refs #25367 -- Moved conditional expression wrapping to the Exact lookup. | Simon Charette | |
| 2019-11-21 | Refs #11964 -- Removed SimpleCol in favor of Query(alias_cols). | Simon Charette | |
| This prevent having to pass simple_col through multiple function calls by defining whether or not references should be resolved with aliases at the Query level. | |||
| 2019-11-18 | Replaced QueryWrapper single usage with RawSQL. | Simon Charette | |
| 2019-11-13 | Fixed #30971 -- Prevented Query.resolve_lookup_value() from coercing list ↵ | George Marshall | |
| values to tuples. Regression in 8a281aa7fe76a9da2284f943964a9413697cff1f. | |||
| 2019-10-29 | Fixed #30899 -- Lazily compiled import time regular expressions. | Hasan Ramezani | |
| 2019-10-24 | Fixed #23576 -- Implemented multi-alias fast-path deletion in MySQL backend. | Simon Charette | |
| This required moving the entirety of DELETE SQL generation to the compiler where it should have been in the first place and implementing a specialized compiler on MySQL/MariaDB. The MySQL compiler relies on the "DELETE table FROM table JOIN" syntax for queries spanning over multiple tables. | |||
| 2019-10-11 | Fixed #30854 -- Fixed QuerySet.select_related() with multiple FilteredRelations. | Hasan Ramezani | |
| 2019-10-11 | Refs #30854 -- Moved local_setter() outside the loop in ↵ | Hasan Ramezani | |
| SQLCompiler.get_related_selections(). | |||
| 2019-09-24 | Removed some outdated backwards compatibility imports and misleading comments. | Mads Jensen | |
| EmptyResultSet moved in 46509cf13dbf049f75077981c29ef2c60b5a96ab. FieldDoesNotExist moved in 8958170755b37ce346ae5257c1000bd936faa3b0. BoundField and pretty_name moved in 8550161e531a603d57723850fb09c4c9b7ca60b9. EMPTY_VALUES moved in 471596fc1afcb9c6258d317c619eaf5fd394e797. BaseRunserverCommand moved in 5c53e30607014163872e89c221b206992a9acfef. | |||
| 2019-09-24 | Refs #29444 -- Removed redundant ↵ | Mariusz Felisiak | |
| DatabaseFeatures.can_return_multiple_columns_from_insert. Unnecessary since b31e63879eb5d9717e9f890401f7222e4f00c910. | |||
| 2019-09-24 | Fixed #29444 -- Allowed returning multiple fields from INSERT statements on ↵ | Johannes Hoppe | |
| Oracle. | |||
| 2019-09-24 | Fixed #30796 -- Prevented select_related() from mutating a queryset on chaining. | Simon Charette | |
| Thanks Darren Maki for the report. | |||
| 2019-09-10 | Refs #14357 -- Made Meta.ordering not affect GROUP BY queries. | Mariusz Felisiak | |
| Per deprecation timeline. | |||
| 2019-09-09 | Fixed #28107 -- Added ↵ | Vojtech Bocek | |
| DatabaseFeatures.allows_group_by_selected_pks_on_model() to allow enabling optimization for unmanaged models. | |||
