Simon Charette
ee6e93ec87
Fixed #30628 -- Adjusted expression identity to differentiate bound fields.
...
Expressions referring to different bound fields should not be
considered equal.
Thanks Julien Enselme for the detailed report.
Regression in bc7e288ca9
.
2019-07-10 07:46:08 +02:00
can
febe136d4c
Fixed #30397 -- Added app_label/class interpolation for names of indexes and constraints.
2019-07-08 14:57:56 +02:00
Johannes Hoppe
bc91f27a86
Refs #29444 -- Added support for fetching a returned non-integer insert values on Oracle.
...
This is currently not actively used, since the ORM will ask the
SQL compiler to only return auto fields.
2019-07-08 08:53:08 +02:00
can
53209f7830
Fixed #30613 -- Moved index name validation to system checks.
2019-07-05 09:30:21 +02:00
Jon Dufresne
42b9a23267
Fixed #30400 -- Improved typography of user facing strings.
...
Thanks Claude Paroz for assistance with translations.
2019-06-28 16:46:18 +02:00
can
f03b7bd114
Fixed #28408 -- Added error message when updating with annotated expressions on joined fields.
...
Co-Authored-By: Simon Charette <charette.s@gmail.com>
2019-06-28 07:55:32 +02:00
can
325d5d6445
Fixed #30477 -- Made reverse lookup use Field.get_db_prep_value() from the target field.
2019-06-25 10:20:33 +02:00
Nadège Michel
87b1ad6e73
Fixed #30421 -- Allowed symmetrical intermediate table for self-referential ManyToManyField.
2019-06-21 15:03:17 +02:00
can
2cbd3967e0
Fixed #29834 -- Fixed column mismatch crash with QuerySet.values()/values_list() and order_by() on combined querysets.
2019-06-19 12:11:28 +02:00
Mariusz Felisiak
14d026cccb
Fixed #30572 -- Prevented values()/values_list() on combined queryset from mutating the list of columns in querysets.
2019-06-19 10:44:53 +02:00
CruxBox
34f8eeea4a
Fixed #30548 -- Improved exception when expression contains mixed types.
2019-06-10 19:48:53 +02:00
Étienne Beaulé
4b6dfe1622
Fixed #30542 -- Fixed crash of numerical aggregations with filter.
...
Filters in annotations crashed when used with numerical-type
aggregations (i.e. Avg, StdDev, and Variance). This was caused as the
source expressions no not necessarily have an output_field (such as the
filter field), which lead to an AttributeError: 'WhereNode' object has
no attribute output_field.
Thanks to Chuan-Zheng Lee for the report.
Regression in c690afb873
and two following
commits.
2019-06-05 08:06:26 +02:00
Mariusz Felisiak
f6075fb333
Fixed #26192 -- Fixed crash of ordering by constants on PostgreSQL.
...
Thanks Simon Charette for the review.
2019-05-31 07:38:48 +02:00
葛汉斌
fcbc502af9
Simplified Model.save() a bit.
2019-05-28 15:40:31 +02:00
Mariusz Felisiak
f8b8b00f01
Fixed #30501 -- Preventing QuerySet.reverse() from mutating expressions in QuerySet.order_by and Meta.ordering.
2019-05-23 20:33:37 +02:00
Rob
519016e5f2
Fixed #28147 -- Fixed loss of assigned parent when saving child after parent.
...
Thanks Erwin Junge for the initial patch.
2019-05-21 10:11:22 +02:00
Simon Charette
514104cf23
Refs #29396 , #30494 -- Reduced code duplication in year lookups.
2019-05-21 07:25:09 +02:00
Simon Charette
2b582a7b84
Fixed #29396 -- Added indirect values support to __year lookups.
...
Thanks Windson Yang for the initial patch.
2019-05-21 07:12:33 +02:00
Simon Charette
4d1420947e
Fixed #30494 -- Disabled __year lookup optimization for indirect values.
...
The previous heuristics were naively enabling the BETWEEN optimization on
successful cast of the first rhs SQL params to an integer while it was
not appropriate for a lot of database resolved expressions.
Thanks Alexey Chernov for the report.
2019-05-21 07:11:26 +02:00
ruchit2801
04042b2b44
Fixed #30463 -- Fixed crash of deprecation message when Meta.ordering contains expressions.
...
Regression in 1b1f64ee5a
.
2019-05-18 19:29:00 +02:00
Iain Watts
59ffafa1d2
Fixed #30482 -- Prevented unnecessary evaluation of lookup.queryset in prefetch_related_objects().
2019-05-16 21:39:55 +02:00
Rob
c231a75112
Fixed #30436 -- Added check that on_delete is callable in ForeignKey and OneToOneField.
2019-05-13 07:25:42 +02:00
Amir Hadi
330638b89f
Fixed #6785 -- Made QuerySet.get() fetch a limited number of rows.
...
Co-authored-by: Tim Graham <timograham@gmail.com>
Co-authored-by: Patryk Zawadzki <patrys@room-303.com>
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-05-12 07:05:24 +02:00
Rob
6b736dd074
Fixed #30349 -- Fixed QuerySet.exclude() on FilteredRelation.
...
Using annotated FilteredRelations raised a FieldError when coupled with
exclude(). This is due to not passing filtered relation fields to the
subquery created in split_exclude(). We fixed this issue by passing the
filtered relation data to the newly created subquery.
Secondly, in the case where an INNER JOIN is used in the excluded
subquery, the ORM would trim the filtered relation INNER JOIN in attempt
to simplify the query. This will also remove the ON clause filters
generated by the FilteredRelation. We added logic to not trim the INNER
JOIN if it is from FilteredRelation.
2019-05-07 14:47:50 +02:00
Tobias Kunze
a44a21a22f
Fixed #26678 -- Doc'd that RelatedManager.add()/remove()/set() accepts the field the relation points to.
2019-05-07 08:55:45 +02:00
Stephen Brown
86a3ad351e
Fixed #30339 -- Made Model.delete(keep_parents=True) preserves nested parent reverse relationships.
...
Thanks Simon Charette for the review.
2019-05-06 13:04:31 +02:00
can
567b9928a3
Fixed #29692 -- Fixed removing ordering parts for multiline RawSQL expressions.
2019-05-03 07:37:37 +02:00
Mykola Kokalko
ef082ebb84
Fixed #29529 -- Allowed models.fields.FilePathField to accept a callable path.
2019-05-02 11:11:56 +02:00
zeyneloz
6485a5f450
Fixed #30409 -- Allowed using foreign key's attnames in unique/index_together and Index's fields.
2019-05-01 11:51:27 +02:00
can
719b746620
Fixed #30412 -- Fixed crash when adding check constraints with OR'ed condition on Oracle and SQLite.
2019-04-30 12:32:27 +02:00
Jon Dufresne
dbe436a9a9
Simplified Field.contribute_to_class().
2019-04-29 07:54:32 +02:00
can
c00b4dbda2
Fixed #29810 -- Fixed crash of select_related() on FilteredRelation with empty result.
2019-04-23 13:48:33 +02:00
Scott Fitsimones
a14c0fda15
Fixed #30328 -- Fixed crash of IntegerField.validators when limit_value in a custom validator is callable.
2019-04-19 07:58:27 +02:00
Ramiro Morales
aed89adad5
Fixed #30367 -- Changed "pip install" to "python -m pip install" in docs, comments and hints.
2019-04-18 14:41:15 +02:00
Ville Skyttä
03db5fddfd
Fixed typos in docs, comments, and exception messages.
2019-04-18 09:33:53 +02:00
can
d87bd29c4f
Fixed #30335 , #29139 -- Fixed crash when ordering or aggregating over a nested JSONField key transform.
2019-04-18 07:16:50 +02:00
Simon Charette
f110de5c04
Fixed #30191 -- Selected only referenced fields during cascade deletion.
...
The non-referenced fields can only be deferred if no deletion signals
receivers are connected for their respective model as connected as these
receivers might expect all fields of the deleted model to be present.
Thanks Ed Morley for the report.
2019-04-17 13:41:23 +02:00
Simon Charette
26c4be2ebe
Refs #18676 -- Enabled fast-delete for m2m_changed senders.
...
There's no reason to disable fast-delete when an intermediary
many-to-many model has connected m2m_changed receivers because the
signal is only sent when related manager's clear() and remove() methods
are directly called.
This must have been overlooked in 1cd6e04cd4
given no regression tests fail when m2m_changed is not taken into
consideration to determine if fast-delete can be enabled.
2019-04-17 13:24:31 +02:00
Vinny Do
a4055adf70
Fixed #30368 -- Fixed prefetch_related() for GenericForeignKey when PK is also a FK.
2019-04-16 09:49:16 +02:00
Simon Charette
0cb4062482
Refs #23758 -- Used RecursionError instead of RuntimeError to raise nested subquery errors.
...
RecursionError was introduced in Python 3.5 and subclasses RuntimeError.
2019-04-15 15:20:41 +02:00
Simon Charette
c0969ee227
Refs #27149 -- Based recursive nested subquery detection on sys.getrecursionlimit().
...
This makes sure the test_avoid_infinite_loop_on_too_many_subqueries test
doesn't fail on systems with a non-default recursion limit.
2019-04-15 15:20:41 +02:00
Mariusz Felisiak
5f7991c42c
Fixed #30325 -- Reverted "Fixed #29725 -- Removed unnecessary join in QuerySet.count() and exists() on a many-to-many relation."
...
This reverts commit 1299421cad
due to
a regression with custom managers.
2019-04-15 12:02:26 +02:00
Mariusz Felisiak
1afbc96a75
Fixed #30343 -- Fixed prefetch_related() for GenericForeignKey when PK of related field is UUIDField.
2019-04-14 10:02:59 +02:00
Florian Apolloner
afc708cf6d
Fixed #30330 -- Fixed setting of primary key to None during fast-delete.
...
Regression in bc7dd8490b
.
2019-04-08 21:14:00 +02:00
David Beitey
8bdb12c1d3
Fixed typo in django/db/models/query_utils.py comment.
2019-04-03 08:18:54 +02:00
Mariusz Felisiak
2a431db0f5
Fixed #28621 -- Fixed crash of annotations with OuterRef.
2019-03-27 08:24:05 +01:00
Hasan Ramezani
981dd6dd71
Fixed #28431 -- Added a system check for BinaryField to prevent strings defaults.
...
Thanks Claude Paroz for the initial patch.
2019-03-25 20:04:35 +01:00
Simon Charette
1ca825e4dc
Fixed #30246 -- Reused annotation aliases references in aggregation filters.
...
Thanks Jan Baryła for the detailed report and the reduced test case.
2019-03-23 10:11:45 -04:00
Simon Charette
3f32154f40
Refs #30188 -- Avoided GROUP BY when aggregating over non-aggregates.
2019-03-23 10:11:41 -04:00
Simon Charette
d1e9c25162
Refs #30188 -- Prevented double annotation of subquery when aggregated over.
...
Thanks Can Sarıgöl for the suggested trimming approach.
2019-03-23 09:50:42 -04:00
Simon Charette
bdc07f176e
Fixed #30188 -- Fixed a crash when aggregating over a subquery annotation.
2019-03-23 09:48:31 -04:00
Simon Charette
f19a4945e1
Fixed #21703 -- Fixed a crash when excluding a related field with a F().
2019-03-23 09:48:28 -04:00
Matthias Kestenholz
ea071870f9
Fixed #30280 -- Restored Model.get_FIELD_display()'s coercion of lazy strings.
...
Reverted cc79c7ee63
.
2019-03-22 12:30:10 -04:00
Nick Pope
d26b242443
Fixed #30271 -- Added the Sign database function.
2019-03-22 12:52:39 +01:00
Simon Charette
5935a9aead
Removed obsolete Lookup hook to prepare rhs expressions.
...
After 3a505c70e7
, all _prepare() methods
return self.
2019-03-21 20:54:21 -04:00
Simon Charette
3a505c70e7
Refs #27149 , #29542 -- Simplified subquery parentheses wrapping logic.
2019-03-21 20:42:26 -04:00
Simon Charette
3543129822
Refs #27149 -- Moved subquery expression resolving to Query.
...
This makes Subquery a thin wrapper over Query and makes sure it respects
the Expression source expression API by accepting the same number of
expressions as it returns. Refs #30188 .
It also makes OuterRef usable in Query without Subquery wrapping. This
should allow Query's internals to more easily perform subquery push downs
during split_exclude(). Refs #21703 .
2019-03-21 20:36:31 -04:00
Simon Charette
96b6ad94d9
Refs #27149 -- Made Subquery store Query instead of Queryset.
...
Subquery only uses Query.
2019-03-21 20:02:51 -04:00
Simon Charette
fb3f034f1c
Fixed #30158 -- Avoided unnecessary subquery group by on aggregation.
...
Subquery annotations can be omitted from the GROUP BY clause on aggregation
as long as they are not explicitly grouped against.
Thanks Jonny Fuller for the report.
2019-03-21 18:48:41 -04:00
Simon Charette
9dc367dc10
Refs #30158 -- Added alias argument to Expression.get_group_by_cols().
2019-03-21 18:47:46 -04:00
Nick Pope
0b70985f42
Fixed #30240 -- Added SHA1, SHA224, SHA256, SHA384, and SHA512 database functions.
...
Thanks Mariusz Felisiak and Tim Graham for reviews.
2019-03-20 19:30:43 +01:00
Matt Westcott
58ad030d05
Fixed #30254 -- Allowed model metaclasses to access the attribute dict in __init__().
...
Regression in a68ea23101
.
2019-03-14 21:05:23 -04:00
ahbk
d527639804
Fixed #29754 -- Added is_dst parameter to Trunc database functions.
2019-03-07 10:02:18 -05:00
avas9366
9681e968eb
Fixed #30232 -- Corrected expected format in invalid DurationField error message.
2019-03-04 19:25:27 -05:00
Mariusz Felisiak
f69c7bbdce
Refs #29408 -- Cosmetic edits for validation of related fields and lookups in model Meta.ordering.
...
Follow up to 440505cb2c
.
2019-03-01 19:38:21 +01:00
Hasan Ramezani
440505cb2c
Fixed #29408 -- Added validation of related fields and lookups in model Meta.ordering.
2019-03-01 17:09:33 +01:00
Simon Charette
de7f6b51b2
Refs #19544 -- Added a fast path for through additions if supported.
...
The single query insertion path is taken if the backend supports inserts
that ignore conflicts and m2m_changed signals don't have to be sent.
2019-02-21 10:20:47 -05:00
Simon Charette
28712d8acf
Refs #19544 -- Ignored auto-created through additions conflicts if supported.
...
This prevents IntegrityError caused by race conditions between missing ids
retrieval and bulk insertions.
2019-02-21 10:20:47 -05:00
Simon Charette
dd32f9a3a2
Refs #19544 -- Extracted ManyRelatedManager.add() missing ids logic to a method.
2019-02-21 10:20:47 -05:00
Mariusz Felisiak
9ff18c08c3
Refs #28643 -- Added MD5 database function.
...
Thanks Tim Graham, Nick Pope and Simon Charette for reviews.
2019-02-21 10:52:51 +01:00
Hasan Ramezani
741ce81a42
Fixed #29619 -- Added field names to some FieldErrors.
2019-02-14 18:58:08 -05:00
Dan Davis
2bd8df243a
Fixed #30184 -- Removed ellipsis characters from shell output strings.
...
Partially reverted 50b8493581
(refs #29654 )
to avoid a crash when the user shell doesn't support non-ASCII characters.
2019-02-13 13:59:44 -05:00
Simon Charette
64d5bafbc6
Fixed #30027 -- Errored out on Window function usage if unsupported.
2019-02-09 08:47:41 -05:00
Sergey Fedoseev
eefc9550fd
Simplified Window.as_sql().
2019-02-09 08:41:35 -05:00
Nick Pope
24b82cd201
Fixed #30159 -- Removed unneeded use of OrderedDict.
...
Dicts preserve order since Python 3.6.
2019-02-06 13:48:39 -05:00
Tim Graham
d47498c5df
Fixed #30156 -- Dropped support for SpatiaLite 4.1 and 4.2.
2019-02-04 13:16:38 -05:00
Johannes Hoppe
b131f9c79f
Refs #29444 -- Renamed DatabaseFeatures.can_return_id* to be generic for other columns.
2019-01-30 15:31:56 -05:00
Joshua Cannon
16a5a2a2c8
Fixed #30076 -- Added Model.get_FOO_display() even if field's choices are empty.
2019-01-30 13:44:10 -05:00
Mariusz Felisiak
5a5c77d55d
Fixed E117 and F405 flake8 warnings.
2019-01-30 13:06:09 +01:00
Jon Dufresne
7e3bf2662b
Removed default mode='r' argument from calls to open().
2019-01-27 17:41:43 -05:00
Simon Charette
8d2dcc47cd
Fixed #30106 -- Made order_with_respect_to updates use QuerySet.bulk_update().
2019-01-21 17:02:20 -05:00
Simon Charette
65858119d2
Fixed #30120 -- Fixed invalid SQL in distinct aggregate.
...
Regression in bc05547cd8
(refs #28658 ).
2019-01-21 09:24:32 -05:00
Tim Graham
da1de1615c
Refs #28750 -- Removed suppport for model Meta.manager_inheritance_from_future.
2019-01-17 11:15:27 -05:00
Tim Graham
1fecde6be9
Refs #11557 -- Removed the field_name keyword argument to QuerySet.earliest() and latest().
...
Per deprecation timeline.
2019-01-17 10:52:19 -05:00
Tim Graham
da5eb3d56c
Refs #28370 -- Removed support for the context arg of Field.from_db_value() and Expression.convert_value().
...
Per deprecation timeline.
2019-01-17 10:52:19 -05:00
Simon Charette
9e5e5a657b
Fixed #30044 -- Raised a FieldError on inherited field update attempts.
2019-01-16 14:09:51 -05:00
Simon Charette
dbcf2ffa77
Refs #9475 -- Simplified dictionary unpacking.
2019-01-16 09:20:15 -05:00
Nick Pope
d212bc03ba
Refs #9475 -- Fixed typo, used unpacking generalization, and made through_defaults kwarg-only.
2019-01-15 13:03:08 -05:00
Collin Anderson
769355c765
Fixed #9475 -- Allowed RelatedManager.add(), create(), etc. for m2m with a through model.
2019-01-15 11:12:17 -05:00
Nasir Hussain
f021c110d0
Fixed #30099 -- Fixed invalid SQL when filtering a Subquery by an aggregate.
2019-01-15 07:22:59 -05:00
Jon Dufresne
ad7aa02c1d
Removed unnecessary string formatting of strings.
2019-01-14 21:04:00 -05:00
Nick Pope
846624ed08
Refs #28643 -- Extracted DurationField logic for Avg() and Sum() into mixin.
...
Also addresses Sum() not handling the filter option correctly.
2019-01-14 14:39:57 -05:00
Nick Pope
6d4efa8e6a
Refs #28643 -- Changed Variance() to use NumericOutputFieldMixin.
...
Keeps precision instead of forcing DecimalField to FloatField.
2019-01-14 14:39:46 -05:00
Nick Pope
e85afa5943
Refs #28643 -- Changed StdDev() to use NumericOutputFieldMixin.
...
Keeps precision instead of forcing DecimalField to FloatField.
2019-01-14 14:38:00 -05:00
Nick Pope
c690afb873
Refs #28643 -- Changed Avg() to use NumericOutputFieldMixin.
...
Keeps precision instead of forcing DecimalField to FloatField.
2019-01-14 14:35:41 -05:00
Nick Pope
3d5e0f8394
Refs #28643 -- Moved db function mixins to a separate module.
2019-01-14 14:26:46 -05:00
Nick Pope
7f1577d1ef
Avoided calling as_oracle() for SQLite in Left database function.
2019-01-14 13:02:58 -05:00
Nick Pope
ae65eed68d
Corrected comment in TruncTime database function.
2019-01-14 13:02:58 -05:00
Nick Pope
0d7ba0ff8b
Simplified overriding source expressions in some database functions.
2019-01-14 13:02:58 -05:00
Sergey Fedoseev
b86bb47818
Fixed #30093 -- Fixed ordering of combined queryset ordered by F expressions.
2019-01-14 10:28:11 -05:00