Simon Charette
8b3e1b6e9e
Refs #11964 -- Made constraint support check respect required_db_features.
...
This will notably silence the warnings issued when running the test
suite on MySQL.
2019-08-12 06:44:37 +02:00
Diederik van der Boor
25f21bd237
Fixed #28393 -- Added helpful error messages for invalid AutoField/FloatField/IntegerField values.
...
Co-authored-by: Diederik van der Boor <vdboor@edoburu.nl>
Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2019-08-05 08:41:29 +02:00
aaktsipetrov
4edad1ddf6
Fixed #30668 -- Made QuerySet.filter() raise NotSupportedError if any of source expressions is not filterable.
2019-08-02 15:06:00 +02:00
Nick Pope
194d1dfc18
Fixed #30661 -- Added models.SmallAutoField.
2019-08-02 11:39:01 +02:00
Étienne Beaulé
5f24e7158e
Fixed #30665 -- Added support for distinct argument to Avg() and Sum().
2019-07-31 11:22:50 +02:00
Jon Dufresne
4122d9d3f1
Refs #28147 -- Fixed setting of OneToOne and Foreign Key fields to None when using attnames.
...
Regression in 519016e5f2
.
2019-07-27 12:04:56 +02:00
Mariusz Felisiak
806ba19bbf
Added Query.is_sliced property.
...
Previously, we used Query.can_filter() mainly to check if a query is
sliced what was confusing.
2019-07-25 20:45:55 +02:00
Hasan Ramezani
1853383969
Fixed #27995 -- Added error messages on unsupported operations following union(), intersection(), and difference().
2019-07-25 12:39:55 +02:00
Jon Dufresne
5ed20b3aa3
Fixed #30657 -- Allowed customizing Field's descriptors with a descriptor_class attribute.
...
Allows model fields to override the descriptor class used on the model
instance attribute.
2019-07-25 08:15:20 +02:00
Jon Dufresne
93ffa81bc5
Refs #30657 -- Made DeferredAttribute.__init__() to take a field instance instead of a field name.
2019-07-25 07:24:52 +02:00
Jon Dufresne
d89053585e
Improved error message when index in __getitem__() is invalid.
2019-07-23 20:12:08 +02:00
Jon Dufresne
60dc957a82
Removed unnecessary code in Model.__init__().
...
As is_related_object is True, the val variable is unused for the
remainder of the method.
Unnecessary since 53da1e4794
.
2019-07-23 07:45:07 +02:00
Hasan Ramezani
402e6d292f
Fixed #30602 -- Made Extract raise ValueError when using unsupported lookups for DurationField.
2019-07-12 08:08:35 +02:00
Mariusz Felisiak
7a42cfcfdc
Refs #30557 -- Fixed crash of ordering by ptr fields when Meta.ordering contains F() expressions.
...
Thanks Can Sarıgöl for the report.
Follow up to 8c5f9906c5
.
2019-07-11 13:40:36 +02:00
Hasan Ramezani
8c5f9906c5
Fixed #30557 -- Fixed crash of ordering by ptr fields when Meta.ordering contains expressions.
2019-07-11 11:24:59 +02:00
can
52545e788d
Fixed #28289 -- Fixed crash of RawSQL annotations on inherited model fields.
2019-07-11 08:27:15 +02:00
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
Nick Pope
abf8e390a4
Refs #28643 -- Added Reverse database function.
...
Thanks Mariusz Felisiak for Oracle advice and review.
2019-01-12 10:45:48 -05:00
Paveł Tyślacki
b69f8eb04c
Fixed #30062 -- Added support for unique conditional constraints.
2019-01-12 09:50:20 -05:00
Paveł Tyślacki
1e837c4b23
Used None as the empty value for condition in Index's SQL construction.
2019-01-12 09:34:10 -05:00
Tim Graham
8f4eee1777
Moved django.db.migrations.writer.SettingsReference to django.conf.
...
Reduces the possibility of circular imports.
2019-01-11 15:28:22 -05:00
Mads Jensen
4b9d72210f
Refs #28643 -- Added NullIf database function.
...
Thanks Nick Pope, Mariusz Felisiak, and Tim Graham for reviews.
2019-01-10 12:10:12 -05:00
Simon Charette
bc05547cd8
Fixed #28658 -- Added DISTINCT handling to the Aggregate class.
2019-01-09 17:52:36 -05:00
Nick Pope
99b3ab2781
Simplified some imports for database functions.
...
Used more specific modules to reduce the risk of circular imports.
2019-01-08 19:21:31 -05:00
Tim Graham
0004daa536
Used 4 space hanging indent for dictionaries.
...
Thanks Mariusz Felisiak for auditing.
2019-01-02 18:18:19 -05:00
Paveł Tyślacki
0123b67f6b
Fixed #30060 -- Moved SQL generation for indexes and constraints to SchemaEditor.
2019-01-01 09:39:58 -05:00
Tim Graham
100b8dd163
Renamed QuerySet.earliest()/latest() helper method.
2018-12-30 11:43:39 -05:00
Mariusz Felisiak
dd8ed64113
Fixed #29851 -- Fixed crash of annotations with window expressions in Subquery.
2018-12-27 20:21:57 +01:00
Sergey Fedoseev
a68ea23101
Fixed #29970 , #30041 -- Made ModelBase.__new__() pass attrs without contribute_to_class() to type.__new__().
2018-12-22 18:11:24 -05:00
Mariusz Felisiak
f9a33e3c3f
Fixed #29932 -- Fixed combining compound queries with sub-compound queries on SQLite and Oracle.
2018-12-06 15:31:33 -05:00
Simon Charette
53269bcaaf
Fixed #30011 -- Fixed queries that reuse filtered aggregates.
...
Thanks Taqi Abbas and Raphael Kimmig for the report.
2018-12-06 14:55:35 -05:00
Nick Pope
c3bbf1fd4c
Refs #28643 -- Skipped ATan2() workaround on SpatiaLite 5+.
2018-11-30 13:59:05 -05:00
Prabakaran Kumaresshan
0d724ce916
Fixed #30001 -- Marked UUIDField.description for translation.
2018-11-30 11:23:17 -05:00
Nick Pope
c512912463
Refs #23801 -- Made integer field max_length warning show correct field type.
2018-11-23 14:40:46 -05:00
Nick Pope
856ba1ec86
Removed redundant BigIntegerField.empty_strings_allowed (already inherited).
2018-11-23 14:22:58 -05:00
Tom Forbes
31408446b3
Fixed #29974 -- Fixed non-truthy primary key values for QuerySet.bulk_update().
2018-11-21 22:58:43 -05:00
Mariusz Felisiak
d5f4ce9849
Fixed #29949 -- Refactored db introspection identifier converters.
...
Removed DatabaseIntrospection.table_name_converter()/column_name_converter()
and use instead DatabaseIntrospection.identifier_converter().
Removed DatabaseFeatures.uppercases_column_names.
Thanks Tim Graham for the initial patch and review and Simon Charette
for the review.
2018-11-21 09:06:50 +01:00
Simon Charette
0cf85e6b07
Refs #29908 -- Optimized known related objects assignment.
...
Since CPython implements a C level attrgetter(*attrs) it even outperforms the
most common case of a single known related object since the resulting attribute
values tuple is built in C.
2018-11-17 18:56:11 -05:00
Ian Foote
e1fc07c047
Fixed #17930 -- Allowed ORing (|) with sliced QuerySets.
2018-11-15 09:43:58 -05:00
Hasan Ramezani
6d4e5feb79
Fixed #29835 -- Made RelatedFieldListFilter respect ModelAdmin.ordering.
2018-11-14 14:29:39 -05:00
Simon Charette
db13bca60a
Fixed #29641 -- Added support for unique constraints in Meta.constraints.
...
This constraint is similar to Meta.unique_together but also allows
specifying a name.
Co-authored-by: Ian Foote <python@ian.feete.org>
2018-11-13 17:57:27 -05:00
Simon Charette
dba4a634ba
Refs #29641 -- Refactored database schema constraint creation.
...
Added a test for constraint names in the database.
Updated SQLite introspection to use sqlparse to allow reading the
constraint name for table check and unique constraints.
Co-authored-by: Ian Foote <python@ian.feete.org>
2018-11-13 15:25:44 -05:00
Simon Charette
75dfa92a05
Fixed #29908 -- Fixed setting of foreign key after related set access if ForeignKey uses to_field.
...
Adjusted known related objects handling of target fields which relies on
from and to_fields and has the side effect of fixing a bug bug causing
N+1 queries when using reverse foreign objects.
Thanks Carsten Fuchs for the report.
2018-11-08 19:51:15 -05:00
Mads Jensen
a906c98982
Fixed #29547 -- Added support for partial indexes.
...
Thanks to Ian Foote, Mariusz Felisiak, Simon Charettes, and
Markus Holtermann for comments and feedback.
2018-10-29 19:34:54 -04:00
Tim Graham
f77fc56c96
Fixed #29896 -- Fixed incorrect Model.save() cache relation clearing for foreign keys that use to_field.
...
Regression in ee49306176
.
2018-10-28 22:54:02 -04:00
Sanyam Khurana
83c7096f2a
Fixed #29869 -- Made UUIDField.to_python() convert integers.
2018-10-24 20:26:57 -04:00
Simon Charette
5e3463f6bc
Fixed #27595 -- Made ForeignKey.get_col() follow target chains.
...
Previously, foreign relationships were followed only one level deep which
prevents foreign keys to foreign keys from being resolved appropriately.
This was causing issues such as improper database value conversion for
UUIDField on SQLite because the resolved expression's output field's
internal type wasn't correct. Added tests to make sure unlikely foreign
reference cycles don't cause recursion errors.
Refs #24343 .
Thanks oyooyo for the report and Wayne Merry for the investigation.
2018-10-22 09:49:34 -04:00
aspalding
834c4ec8e4
Moved make_hashable() to django.utils and added tests.
2018-10-17 11:17:23 -04:00
Florian Apolloner
bc7dd8490b
Fixed #21171 -- Avoided starting a transaction when a single (or atomic queries) are executed.
...
Checked the following locations:
* Model.save(): If there are parents involved, take the safe way and use
transactions since this should be an all or nothing operation.
If the model has no parents:
* Signals are executed before and after the previous existing
transaction -- they were never been part of the transaction.
* if `force_insert` is set then only one query is executed -> atomic
by definition and no transaction needed.
* same applies to `force_update`.
* If a primary key is set and no `force_*` is set Django will try an
UPDATE and if that returns zero rows it tries an INSERT. The first
case is completly save (single query). In the second case a
transaction should not produce different results since the update
query is basically a no-op then (might miss something though).
* QuerySet.update(): no signals issued, single query -> no transaction
needed.
* Model/Collector.delete(): This one is fun due to the fact that is
does many things at once.
Most importantly though: It does send signals as part of the
transaction, so for maximum backwards compatibility we need to be
conservative.
To ensure maximum compatibility the transaction here is removed only
if the following holds true:
* A single instance is being deleted.
* There are no signal handlers attached to that instance.
* There are no deletions/updates to cascade.
* There are no parents which also need deletion.
2018-10-17 12:19:02 +02:00
oliver
1299421cad
Fixed #29725 -- Removed unnecessary join in QuerySet.count() and exists() on a many-to-many relation.
2018-10-15 11:01:57 -04:00
Jon Dufresne
1e87c9fe71
Replaced kwargs.pop() with keyword-only arguments.
2018-10-08 15:06:02 -04:00
Jon Dufresne
2ba588e773
Refs #27795 -- Removed force_text() usage in db/models/sql/query.py.
2018-10-08 14:47:01 -04:00
Simon Charette
bc7e288ca9
Fixed #29745 -- Based Expression equality on detailed initialization signature.
...
The old implementation considered objects initialized with an equivalent
signature different if some arguments were provided positionally instead of
as keyword arguments.
Refs #11964 , #26167 .
2018-10-02 19:15:20 -04:00
Simon Charette
24dc7d8940
Refs #29641 -- Extracted reusable CheckConstraint logic into a base class.
2018-10-02 13:11:18 -04:00
Simon Charette
9142bebff2
Refs #11964 -- Changed CheckConstraint() signature to use keyword-only arguments.
...
Also renamed the `constraint` argument to `check` to better represent which
part of the constraint the provided `Q` object represents.
2018-10-02 10:53:04 -04:00
Jon Dufresne
0bf7b25f8f
Added django.db.backends.utils.names_digest() to remove redundant code.
2018-10-02 10:41:43 -04:00
Abhinav Patil
bf01994a5c
Fixed #29804 -- Added 'did you mean' suggestions for unsupported lookup error.
2018-10-01 19:03:10 -04:00
Claude Paroz
fc3a463048
Fixed #29767 -- Made date-related casts work on SQLite
...
Thanks Rémy Hubscher for the report and Tim Graham and Simon Charette for the reviews.
2018-10-01 13:27:30 +02:00
Sergey Fedoseev
8ef8bc0f64
Refs #28909 -- Simplifed code using unpacking generalizations.
2018-09-28 09:57:12 -04:00
Jon Dufresne
8c3e0eb1c1
Normalized spelling of "lowercase" and "lowercased".
2018-09-25 10:30:18 -04:00
Tom Forbes
9cbdb44014
Fixed #23646 -- Added QuerySet.bulk_update() to efficiently update many models.
2018-09-18 16:14:44 -04:00
Ramiro Morales
1b1f64ee5a
Refs #14357 -- Deprecated Meta.ordering affecting GROUP BY queries.
...
Thanks Ramiro Morales for contributing to the patch.
2018-09-13 12:29:48 -04:00
Srinivas Reddy Thatiparthy
34d6bceec4
Fixed #29500 -- Fixed SQLite function crashes on null values.
...
Co-authored-by: Srinivas Reddy Thatiparthy <thatiparthysreenivas@gmail.com>
Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2018-09-10 15:08:55 -04:00
Alexander Holmbäck
f315d0423a
Fixed #29727 -- Made nonexistent joins in F() raise FieldError.
...
Regression in 2162f0983d
.
2018-09-08 09:40:33 -04:00
Jon Dufresne
cc79c7ee63
Refs #27795 -- Removed force_text() in Model._get_FIELD_display().
2018-08-31 10:59:57 -04:00
Mariusz Felisiak
39461a83c3
Fixed #29694 -- Fixed column mismatch crash with QuerySet.values() or values_list() after combining querysets with extra() with union(), difference(), or intersection().
...
Regression in 0b66c3b442
.
2018-08-29 10:00:15 +02:00
Jon Dufresne
90f3ef332b
Refs #27795 -- Removed force_bytes()/smart_text() from model fields.
2018-08-28 07:56:18 -04:00
priyanshsaxena
83b04d4f88
Fixed #29048 -- Added **extra_context to database function as_vendor() methods.
2018-08-23 11:52:09 -04:00
Simon Willison
586a9dc429
Fixed #26352 -- Made system check allow ManyToManyField to target the same model if through_fields differs.
2018-08-22 12:07:29 -04:00
Franck Michea
7def8bed58
Fixed #29698 -- Fixed Field._check_choices() crash on invalid choices.
2018-08-22 09:15:19 -04:00
Claude Paroz
50b8493581
Refs #29654 -- Replaced three dots with ellipsis character in output strings.
2018-08-22 09:13:58 -04:00
Mariusz Felisiak
ac29fec111
Removed unused function argument from Window.as_sql().
...
Unused since its introduction in d549b88050
.
2018-08-20 22:16:27 +02:00
Ming Qin
cfb4845f06
Fixed #29625 -- Made Model.refresh_from_db() clear prefetch related caches.
2018-08-20 12:01:42 -04:00
Sigurd Ljødal
3e09b37f80
Fixed #28649 -- Added ExtractIsoYear database function and iso_year lookup.
2018-08-18 13:09:15 -04:00
Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి)
7eb556a6c2
Removed unused enumerate in django/db/models/sql/datastructures.py.
2018-08-13 18:41:24 -04:00
Ramiro Morales
b5c7cb4d33
Fixed #29653 -- Fixed missing related_query_name reverse accessor if GenericRelation is declared on an abstract base model.
...
Regression in 4ab027b944
.
Thanks Lauri Kainulainen for the report.
2018-08-10 12:17:26 -04:00
Raphael Michel
155b31d4ec
Fixed #29648 -- Fixed crash when using subqueries inside datetime truncation functions.
2018-08-07 16:47:54 -04:00
Tom
f1fbef6cd1
Fixed #28668 -- Allowed QuerySet.bulk_create() to ignore insert conflicts.
2018-08-03 17:40:46 -04:00
Michael Sanders
271542dad1
Fixed #29499 -- Fixed race condition in QuerySet.update_or_create().
...
A race condition happened when the object didn't already exist and
another process/thread created the object before update_or_create()
did and then attempted to update the object, also before update_or_create()
saved the object. The update by the other process/thread could be lost.
2018-08-02 17:07:48 -04:00
luz.paz
97e637a87f
Fixed typos in comments and docs.
2018-08-01 16:09:22 -04:00
Tim Graham
4263cd0e09
Simplified comment in BooleanField.to_python().
2018-08-01 11:52:02 -04:00
Andrew Brown
55810d94d0
Refs #29563 -- Fixed SQLCompiler.execute_sql() to respect DatabaseFeatures.can_use_chunked_reads.
2018-07-25 18:08:57 -04:00
François Dupayrat
861638a307
Fixed #29568 -- Prevented unnecessary UPDATE queries creating child models.
2018-07-20 08:59:15 -04:00
Mariusz Felisiak
a73cf8110e
Removed duplicate words in various comments.
2018-07-18 11:54:15 -04:00
Viktor Danyliuk
6ae7aaa7d6
Fixed #29413 -- Prevented evaluation of QuerySet.get_or_create()/update_or_create() defaults unless needed.
...
Removed the logic added in 81e05a418d
which
was obsolete since dbffffa7dc
.
2018-07-16 22:08:43 -04:00
Josh Schneier
4d48ddd8f9
Fixed #28917 -- Prevented Paginator's unordered warning on EmptyQuerySet.
...
Thanks carltongibson for the idea and weijunji for the initial patch.
2018-07-16 14:28:47 -04:00
Mariusz Felisiak
dd3b470719
Fixed #29542 -- Fixed invalid SQL if a Subquery from the HAVING clause is used in the GROUP BY clause.
...
Thanks Tim Graham for the review.
2018-07-14 12:03:22 +02:00
Ian Foote
952f05a6db
Fixed #11964 -- Added support for database check constraints.
2018-07-10 15:32:33 -04:00
Mads Jensen
8e4a75e5d5
Deleted unused variable in SQLCompiler.get_related_selections().
...
Unused since 01d440fa1e
.
2018-07-10 09:15:19 -04:00
Mads Jensen
f1fc7d6b78
Refs #26608 -- Removed unneeded name attribute in window functions.
2018-07-05 11:38:07 -04:00
Junyi Jiao
a0b19a0f5b
Refs #28643 -- Added math database functions.
...
Thanks Nick Pope for much review.
2018-07-05 11:02:12 -04:00
Mariusz Felisiak
0e64e046a4
Fixed #29530 -- Fixed aliases ordering when chaining annotate() and filter().
2018-07-02 21:09:29 +02:00
Ian Foote
38cada7c94
Fixed #28077 -- Added support for PostgreSQL opclasses in Index.
...
Thanks Vinay Karanam for the initial patch.
2018-06-29 17:00:28 -04:00
Alexandr Tatarinov
7410618528
Fixed #29447 -- Made RelatedManager.set() pass bulk argument to clear().
2018-06-25 13:04:46 -04:00
Tim Graham
e7185a6514
Refs #29516 -- Reverted inadvertent change in Model.__init__().
2018-06-25 09:39:16 -04:00
Federico Bond
4c36414323
Fixed #29517 -- Rephrased error message when passing incorrect kwarg to model constructor
2018-06-25 09:30:58 +02:00
Nick Pope
b0fbfae093
Fixed #29503 -- Made __in lookup keep order of values in query.
...
Regression in 86eccdc8b6
.
2018-06-20 09:29:06 -04:00
Tim Graham
c03e41712b
Refs #28748 -- Reallowed lazy model field choices.
...
Regression in 3aa9ab39cc
.
2018-05-29 21:43:38 -04:00
Paulo
6104875a2c
Fixed #29230 -- Fixed nested prefetches that clash with descriptors.
2018-05-27 21:45:51 -04:00
Mariusz Felisiak
4ab1f559e8
Fixed #29416 -- Removed unnecesary subquery from GROUP BY clause on MySQL when using a RawSQL annotation.
...
Regression in 1d070d027c
.
2018-05-27 18:25:19 -04:00
olivierdalang
825f0beda8
Fixed #8936 -- Added a view permission and a read-only admin.
...
Co-authored-by: Petr Dlouhy <petr.dlouhy@email.cz>
Co-authored-by: Olivier Dalang <olivier.dalang@gmail.com>
2018-05-16 06:44:55 -04:00