| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-06-27 | [4.1.x] Fixed #33796 -- Fixed ordered combined queryset crash when used in ↵ | Mariusz Felisiak | |
| subquery on PostgreSQL and MySQL. Thanks Shai Berger for the report. Regression in 30a01441347d5a2146af2944b29778fa0834d4be. Backport of 44ffd8d06fabc07d8333f31439e8dd39ea87329b from main | |||
| 2022-05-13 | Fixed typo in Query.clone()'s docstring. | 非法操作 | |
| 2022-05-12 | Fixed #29538 -- Fixed crash of ordering by related fields when Meta.ordering ↵ | Ed Rivas | |
| contains expressions. Thanks Simon Charette for the review. | |||
| 2022-04-26 | Fixed #33655 -- Removed unnecessary constant from GROUP BY clause for ↵ | marcperrinoptel | |
| QuerySet.exists(). | |||
| 2022-04-19 | Refs #32226 -- Fixed JSON format of QuerySet.explain() on PostgreSQL when ↵ | Mariusz Felisiak | |
| format is uppercased. Follow up to aba9c2de669dcc0278c7ffde7981be91801be00b. | |||
| 2022-04-14 | Made select_for_update() don't raise TransactionManagementError on databases ↵ | Mariusz Felisiak | |
| that don't support transactions. | |||
| 2022-04-13 | Removed unnecessary tuple call in SQLInsertCompiler. | David Smith | |
| 2022-04-12 | Fixed #24296 -- Made QuerySet.exists() clear selected columns for not sliced ↵ | mgaligniana | |
| distinct querysets. | |||
| 2022-04-11 | Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against SQL ↵ | Mariusz Felisiak | |
| injection on PostgreSQL. | |||
| 2022-04-11 | Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), and ↵ | Mariusz Felisiak | |
| extra() against SQL injection in column aliases. Thanks Splunk team: Preston Elder, Jacob Davis, Jacob Moore, Matt Hanson, David Briggs, and a security researcher: Danylo Dmytriiev (DDV_UA) for the report. | |||
| 2022-04-07 | Fixed #33618 -- Fixed MTI updates outside of primary key chain. | Simon Charette | |
| 2022-03-31 | Removed unnecessary Query.get_loaded_field_names_cb() and ↵ | Mariusz Felisiak | |
| Query.deferred_to_data()'s callback argument. | |||
| 2022-03-31 | Refs #24020 -- Removed redundant Query.get_loaded_field_names(). | Mariusz Felisiak | |
| get_loaded_field_names() is no longer called in multiple places (see 0c7633178fa9410f102e4708cef979b873bccb76) and it's redundant with SQLCompiler.deferred_to_columns(). | |||
| 2022-03-30 | Fixed #33598 -- Reverted "Removed unnecessary reuse_with_filtered_relation ↵ | Mariusz Felisiak | |
| argument from Query methods." Thanks lind-marcus for the report. This reverts commit 0c71e0f9cfa714a22297ad31dd5613ee548db379. Regression in 0c71e0f9cfa714a22297ad31dd5613ee548db379. | |||
| 2022-03-16 | Refs #30581 -- Allowed sql.Query to be used without model. | Gagaro | |
| 2022-03-04 | Fixed #29865 -- Added logical XOR support for Q() and querysets. | Ryan Heard | |
| 2022-03-03 | Refs #27624 -- Optimized Query.clone() a bit. | Keryn Knight | |
| 2022-03-03 | Refs #27624 -- Optimized sql.Query creation by moving immutable/singleton ↵ | Keryn Knight | |
| attributes to class attributes. | |||
| 2022-02-07 | Refs #33476 -- Refactored code to strictly match 88 characters line length. | Mariusz Felisiak | |
| 2022-02-07 | Refs #33476 -- Reformatted code with Black. | django-bot | |
| 2022-02-03 | Refs #33476 -- Refactored problematic code before reformatting by Black. | Mariusz Felisiak | |
| 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], ) | |||
| 2022-01-19 | Fixed #31685 -- Added support for updating conflicts to QuerySet.bulk_create(). | sean_c_hsu | |
| Thanks Florian Apolloner, Chris Jerdonek, Hannes Ljungberg, Nick Pope, and Mariusz Felisiak for reviews. | |||
| 2022-01-17 | Fixed #29338 -- Allowed using combined queryset in Subquery. | Mariusz Felisiak | |
| Thanks Eugene Kovalev for the initial patch, Simon Charette for the review, and Chetan Khanna for help. | |||
| 2021-12-08 | Fixed #33319 -- Fixed crash when combining with the | operator querysets ↵ | Ömer Faruk Abacı | |
| with aliases that conflict. | |||
| 2021-12-08 | Refs #33319 -- Added comment about keys/values assertion in ↵ | Ömer Faruk Abacı | |
| Query.change_aliases(). | |||
| 2021-12-07 | Refs #25265 -- Allowed customizing Query's datastructure classes. | Erik Cederstrand | |
| 2021-12-02 | Fixed #33282 -- Fixed a crash when OR'ing subquery and aggregation lookups. | Simon Charette | |
| As a QuerySet resolves to Query the outer column references grouping logic should be defined on the latter and proxied from Subquery for the cases where get_group_by_cols is called on unresolved expressions. Thanks Antonio Terceiro for the report and initial patch. | |||
| 2021-11-23 | Fixed #33309 -- Fixed QuerySet.distinct() crash on mixed case annotation. | arsalan.ghassemi | |
| 2021-11-19 | Refs #24121 -- Added __repr__() to BaseDatabaseWrapper, JoinPromoter, and ↵ | Jonny Park | |
| SQLCompiler. | |||
| 2021-11-03 | Fixed #33260 -- Fixed crash when chaining QuerySet.exists() after ↵ | Hannes Ljungberg | |
| select_for_update(of=()). | |||
| 2021-11-03 | Fixed #32996 -- Cached PathInfos on relations. | Keryn Knight | |
| PathInfo values are ostensibly static over the lifetime of the object for which they're requested, so the data can be memoized, quickly amortising the cost over the process' duration. | |||
| 2021-10-13 | Refs #25265 -- Allowed Query subclasses to build filters. | Erik Cederstrand | |
| 2021-10-06 | Refs #26430 -- Removed unused branch in sql.Query.get_count(). | Simon Charette | |
| Now that sql.Query.get_aggregation() properly deals with empty result sets summary Count() annotations cannot result in None. Unused since 9f3cce172f6913c5ac74272fa5fc07f847b4e112. | |||
| 2021-09-30 | Fixed #33159 -- Reverted "Fixed #32970 -- Changed WhereNode.clone() to ↵ | Mariusz Felisiak | |
| create a shallow copy of children." 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. | |||
| 2021-09-29 | Fixed #33018 -- Fixed annotations with empty queryset. | David Wobrock | |
| Thanks Simon Charette for the review and implementation idea. | |||
| 2021-09-29 | Fixed #33141 -- Renamed Expression.empty_aggregate_value to ↵ | David Wobrock | |
| empty_result_set_value. | |||
| 2021-09-24 | Fixed #33124 -- Avoided accessing the database connections when not necessary. | Keryn Knight | |
| Follow up to bf5abf1bdcedb15e949db419c61eeec7c88414ea. This also caches the __getitem__ access. | |||
| 2021-09-20 | Refs #27624 -- Optimized Query.clone() for non-combined queries. | Keryn Knight | |
| This avoids constructing a generator expression and a new tuple if the Query has no combined queries. | |||
| 2021-09-20 | Fixed #32970 -- Changed WhereNode.clone() to create a shallow copy of children. | Keryn Knight | |
| 2021-09-17 | Refs #27624 -- Changed Query.explain_info to namedtuple. | Adam Johnson | |
| 2021-09-17 | Optimized Query.clone() a bit. | Adam Johnson | |
| This removes unnecessary "if ... is None" branches, which are already shallow-copied in the __dict__.copy() call. | |||
| 2021-09-01 | Fixed #33073 -- Fixed queryset crash with aggregation and empty/extra ↵ | David Wobrock | |
| queryset annotation. | |||
| 2021-08-19 | Fixed #33025 -- Avoided accessing the database connections in ↵ | Keryn Knight | |
| Query.build_lookup() when not necessary. 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. | |||
| 2021-08-09 | Removed unnecessary WhereNode.is_summary. | Mariusz Felisiak | |
| Unnecessary since its introduction in 1df89a60c5b7a28d7fda4c9ba7c07f02fd7de0fa. | |||
| 2021-07-28 | Refs #32946 -- Changed Query.add_filter() to take two arguments. | Keryn Knight | |
| 2021-07-22 | Fixed #32951 -- Removed Query.where_class & co. | Nick Pope | |
| Unused since 3caf957ed5eaa831a485abcb89f27266dbf3e82b. | |||
| 2021-07-20 | Fixed #32704 -- Fixed list of deferred fields when chaining QuerySet.defer() ↵ | David Wobrock | |
| after only(). | |||
| 2021-07-20 | Fixed #32944 -- Avoided unnecessary WhereNode.add() calls. | Keryn Knight | |
| Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2021-07-16 | Prevented SQLCompiler.execute_sql() from closing cursor twice. | Nick Pope | |
| cursor_iter() helper calls cursor.close() in a finally block. | |||
| 2021-07-15 | Refs #32508 -- Raised Type/ValueError instead of using "assert" in ↵ | Daniyal | |
| django.db.models. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
