Claude Paroz
d1c2e6dd04
Refs #28428 -- Made FileField.upload_to support pathlib.Path.
2019-08-18 20:34:58 +02:00
Simon Charette
8b4a43dda7
Fixed #29545 -- Fixed using filter lookups againts nested subquery expressions.
...
Made sql.Where resolve lhs of its child nodes. This is necessary to
allow filter lookups against nested subquery expressions to properly
resolve their OuterRefs to Cols.
Thanks Oskar Persson for the simplified test case.
2019-08-17 11:24:35 +02:00
Adam Johnson
7da6a28a44
Fixed #27676 -- Allowed BLOB/TEXT defaults on MariaDB 10.2.1+.
2019-08-16 11:39:37 +02:00
Andrew Brown
8a281aa7fe
Fixed #30687 -- Fixed using of OuterRef() expressions in distance lookups.
2019-08-16 06:50:33 +02:00
zeyneloz
00035672a4
Fixed #30449 -- Fixed RelatedFieldListFilter/RelatedOnlyFieldListFilter to respect model's Meta.ordering.
...
Regression in 6d4e5feb79
.
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-08-15 10:29:05 +02:00
Mads Jensen
0b8d911d28
Optimized Field.deconstruct() by using elif.
2019-08-14 10:50:31 +02:00
Simon Charette
efa1908f66
Refs #25367 -- Moved Oracle Exists() handling to contextual methods.
...
Oracle requires the EXISTS expression to be wrapped in a CASE WHEN in
the following cases.
1. When part of a SELECT clause.
2. When part of a ORDER BY clause.
3. When compared against another expression in the WHERE clause.
This commit moves the systematic CASE WHEN wrapping of Exists.as_oracle
to contextual .select_format, Lookup.as_oracle, and OrderBy.as_oracle
methods in order to avoid unnecessary wrapping.
2019-08-13 06:48:14 +02:00
Simon Charette
fff5186d32
Refs #25367 -- Moved select_format hook to BaseExpression.
...
This will expose an intermediary hook for expressions that need special
formatting when used in a SELECT clause.
2019-08-13 06:48:14 +02:00
Simon Charette
088a6fab1c
Refs #24793 -- Removed bogus connection argument from SQLCompiler.compile() calls.
...
The method doesn't expect a connection object to be passed as its second
argument.
2019-08-12 07:47:55 +02:00
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
Simon Charette
2fb872e56f
Refs #23879 -- Made introspection respect required_db_features.
2019-08-12 06:33:46 +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
Nick Pope
4cf1f2f13e
Simplified AlterModelTable by making it subclass ModelOptionOperation.
2019-08-02 18:19:55 +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
Mariusz Felisiak
d14fa04ab3
Removed obsolete mentions of a check constraint in BaseDatabaseSchemaEditor.add_constraint()/remove_constraint() docstrings.
2019-08-02 07:09:37 +02:00
Mariusz Felisiak
ff111ea5e3
Refs #30664 -- Fixed migrations crash when altering AutoField/BigAutoField with quoted db_column on PostgreSQL.
2019-08-01 12:06:32 +02:00
Ngalim Siregar
e4684220af
Fixed #30664 -- Fixed migrations crash when altering table on SQLite or altering AutoField/BigAutoField on PostgreSQL for models with quoted db_table.
2019-08-01 12:06:32 +02:00
Étienne Beaulé
5f24e7158e
Fixed #30665 -- Added support for distinct argument to Avg() and Sum().
2019-07-31 11:22:50 +02:00
Hasan Ramezani
e3fc9af4ab
Refs #30593 -- Fixed introspection of check constraints columns on MariaDB.
2019-07-30 16:32:13 +02:00
Hasan Ramezani
b2aad9ad4d
Refs #30593 -- Added _parse_constraint_columns() hook to introspection on MariaDB.
2019-07-30 16:32:13 +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
Mariusz Felisiak
8d52a525c8
Refs #29548 -- Fixed DatabaseWrapper.display_name on MariaDB.
2019-07-23 13:34:06 +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
Georgi Yanchev
c6581a40be
Fixed #30644 -- Made introspection use pg_table_is_visible() instead of filtering by public schema on PostgreSQL.
2019-07-22 08:14:53 +02:00
Mariusz Felisiak
842fd620ff
Simplified get_key_columns()/get_relations() introspection methods for PostgreSQL.
2019-07-20 15:15:41 +02:00
Hasan Ramezani
1fc2c70f76
Fixed #30593 -- Added support for check constraints on MariaDB 10.2+.
2019-07-19 11:05:06 +02:00
Yann Sionneau
e47b8293a7
Fixed #30636 -- Fixed options ordering when cloning test database on MySQL.
...
--defaults-file must be given before other options.
2019-07-16 07:25:43 +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
Min ho Kim
fbb83fefd4
Fixed typos in comments and docs.
2019-07-02 09:36:17 +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
Andrew Godwin
a415ce70be
Fixed #30451 -- Added ASGI handler and coroutine-safety.
...
This adds an ASGI handler, asgi.py file for the default project layout,
a few async utilities and adds async-safety to many parts of Django.
2019-06-20 12:29:43 +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
can
fde9b7d35e
Fixed #30128 -- Fixed handling timedelta timezone in database functions.
2019-06-13 09:29:43 +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
b6c4766f53
Refs #29548 -- Updated docs for MariaDB support.
2019-05-27 19:59:49 +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
Hasan Ramezani
1378d665a1
Fixed #28816 -- Prevented silencing data loss when decreasing CharField.max_length on PostgreSQL.
2019-05-21 14:15:43 +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
Przemysław Suliga
af5ec222cc
Used time.monotonic() instead of time.time() where applicable.
...
time.monotonic() available from Python 3.3:
- Nicely communicates a narrow intent of "get a local system monotonic
clock time" instead of possible "get a not necessarily accurate Unix
time stamp because it needs to be communicated to outside of this
process/machine" when time.time() is used.
- Its result isn't affected by the system clock updates.
There are two classes of time.time() uses changed to time.monotonic()
by this change:
- measuring time taken to run some code.
- setting and checking a "close_at" threshold for for persistent db
connections (django/db/backends/base/base.py).
2019-05-08 18:34:22 +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
Rob Golding-Day
4043dc69cd
Fixed #30444 -- Moved SQL generation for tables to BaseDatabaseSchemaEditor.table_sql().
2019-05-07 10:28:14 +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
Daniel Hahler
6d37c089ae
Readded comment about the default params of cursor.execute().
...
It was removed in in 728548e483
.
2019-05-07 08:13:30 +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
Simon Charette
a8b3f96f6a
Fixed #30408 -- Fixed crash when adding check constraints with LIKE operator on Oracle and PostgreSQL.
...
The LIKE operator wildcard generated for contains, startswith, endswith and
their case-insensitive variant lookups was conflicting with parameter
interpolation on CREATE constraint statement execution.
Ideally we'd delegate parameters interpolation in DDL statements on backends
that support it but that would require backward incompatible changes to the
Index and Constraint SQL generating methods.
Thanks David Sanders for the report.
2019-04-30 07:38:22 +02:00
kingbuzzman
673fe2e3ec
Fixed #30148 -- Logged COPY ... TO statements in connection.queries on PostgreSQL.
2019-04-29 14:20:17 +02:00
kingbuzzman
f7408b49a5
Refs #30148 -- Moved logging queries in CursorDebugWrapper to debug_sql() contextmanager.
2019-04-29 13:34:32 +02:00
Jon Dufresne
dbe436a9a9
Simplified Field.contribute_to_class().
2019-04-29 07:54:32 +02:00
Jon Dufresne
8b3f1c35dd
Removed unnecessary assignments in various code.
2019-04-24 13:09:29 +02:00
can
c00b4dbda2
Fixed #29810 -- Fixed crash of select_related() on FilteredRelation with empty result.
2019-04-23 13:48:33 +02:00
Mariusz Felisiak
994a00eb70
Refs #30380 -- Used cursor._executed in DatabaseOperations.last_executed_query() on MySQL.
...
Regression in a41b09266d
.
Thanks Tobias Krönke for the report.
2019-04-21 12:17:05 +02:00
Mariusz Felisiak
a41b09266d
Fixed #30380 -- Handled bytes in MySQL backend for PyMySQL support.
...
This commit partly reverts efd8a82e26
.
2019-04-19 20:34:20 +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
Oleh Mykytiuk
177fa08339
Fixed #30370 -- Added dbshell support for client TLS certificates on PostgreSQL.
2019-04-18 08:10:31 +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
Florian Apolloner
2e38f2015a
Fixed #30350 -- Prevented recreation of migration for operations with a range object.
...
Thanks to Mariusz Felisiak for helping with the patch.
2019-04-14 12:04:48 +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
Dolan Antenucci
f944cb3d3b
Fixed #30266 -- Kept a sequence owner when altering an AutoField/BigAutoField on PostgreSQL.
2019-04-08 22:24:18 +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
can
cef3f2d3c6
Fixed #28373 -- Used connection timezone instead of UTC when making dates timezone-aware on MySQL, SQLite, and Oracle.
...
Thanks vtalpaert for the initial patch.
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-04-08 08:59:17 +02:00
Mariusz Felisiak
79065b55a7
Refs #20010 -- Unified DatabaseOperations.last_executed_query() on Oracle with other db backends.
...
Thanks Simon Charette for the review.
2019-04-05 21:35:51 +02:00