Kaustubh
b9be11d442
Fixed #31918 -- Allowed QuerySet.in_bulk() to fetch on a single distinct field.
2020-08-26 09:43:39 +02:00
Tim Graham
ea880ec233
Fixed #24533 -- Dropped PostgreSQL sequence and Oracle identity when migrating away from AutoField.
2020-08-24 14:32:07 +02:00
Iuri de Silvio
632ccffc49
Fixed #31826 -- Made AlterField operation a noop when adding db_column.
...
AlterField operation with adding a db_column is a noop if the column
name is not changed.
2020-08-14 13:13:36 +02:00
Simon Charette
51297a9232
Fixed #31792 -- Made Exists() reuse QuerySet.exists() optimizations.
...
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-13 14:10:36 +02:00
Iuri de Silvio
7f4c9222df
Fixed #31825 -- Made RenameField operation a noop for fields with db_column.
2020-08-13 13:14:58 +02:00
Pat Garcia
8954f255bb
Fixed #31382 -- Made Model.save(update_fields=...) raise ValueError on non-concrete fields.
2020-08-12 21:13:55 +02:00
Gert Burger
94ea79be13
Fixed #31863 -- Prevented mutating model state by copies of model instances.
...
Regression in bfb746f983
.
2020-08-12 12:43:42 +02:00
Tom Carrick
63300f7e68
Fixed #21181 -- Added Collate database function.
...
Thanks Simon Charette for reviews.
2020-08-11 22:21:08 +02:00
Daniel Hillier
60626162f7
Fixed #31866 -- Fixed locking proxy models in QuerySet.select_for_update(of=()).
2020-08-11 11:55:10 +02:00
Iuri de Silvio
58a336a674
Fixed #31831 -- Fixed migration operations ordering when adding order_with_respect_to and constraints/indexes.
2020-08-08 20:43:45 +02:00
Jacob Walls
c7e7f176c1
Fixed #26977 -- Made abstract models raise TypeError when instantiating.
2020-08-05 06:37:04 +02:00
Alexandr Tatarinov
f4ac167119
Fixed #27719 -- Added QuerySet.alias() to allow creating reusable aliases.
...
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-31 13:19:33 +02:00
Sergey Fedoseev
0b655a4bf8
Removed unnecessary list() call in RelatedManager.add().
2020-07-30 12:19:00 +02:00
David Smith
e74b3d724e
Bumped minimum isort version to 5.1.0.
...
Fixed inner imports per isort 5.
isort 5.0.0 to 5.1.0 was unstable.
2020-07-30 10:58:59 +02:00
Tim Graham
184a6eebb0
Refs #31829 -- Added DatabaseFeatures.json_key_contains_list_matching_requires_list.
...
CockroachDB's behavior matches PostgreSQL.
2020-07-30 06:38:02 +02:00
Hasan Ramezani
9c9a3fe118
Fixed #31783 -- Fixed crash when filtering againts "negate" field.
...
Thanks Simon Charette for the initial patch.
2020-07-29 08:20:58 +02:00
sage
2d8dcba03a
Fixed #31829 -- Used JSONField __contains lookup on key transforms.
2020-07-28 13:10:12 +02:00
Mariusz Felisiak
ba691933ce
Fixed #31836 -- Dropped support for JSONField __contains and __contained_by lookups on SQLite.
...
The current implementation works only for basic examples without
supporting nested structures and doesn't follow "the general principle
that the contained object must match the containing object as to
structure and data contents, possibly after discarding some
non-matching array elements or object key/value pairs from the
containing object".
2020-07-28 13:06:52 +02:00
Mariusz Felisiak
02447fb133
Fixed #31835 -- Dropped support for JSONField __contains lookup on Oracle.
...
The current implementation works only for basic examples without
supporting nested structures and doesn't follow "the general principle
that the contained object must match the containing object as to
structure and data contents, possibly after discarding some
non-matching array elements or object key/value pairs from the
containing object".
2020-07-28 11:54:01 +02:00
Nick Pope
628c4a26ee
Refs #27996 -- Doc'd no extension required for RandomUUID() on PostgreSQL 13+.
...
https://www.postgresql.org/docs/13/functions-uuid.html
https://www.postgresql.org/docs/13/pgcrypto.html#id-1.11.7.34.10.5
2020-07-28 07:21:16 +02:00
Mariusz Felisiak
f4e93919e4
Fixed #31815 -- Fixed schema value encoding on PostgreSQL.
2020-07-27 06:39:02 +02:00
Matthias Kestenholz
c1f8d87bb0
Fixed #31812 -- Fixed FileField.model for fields defined in abstract models.
...
Regression in a93425a37f
.
2020-07-24 11:06:57 +02:00
Tom Forbes
80a8be03d9
Fixed #31765 -- Disabled bundled SQLite renaming atomic references on macOS 10.15.
2020-07-22 09:39:55 +02:00
Tim Graham
ff55adbd0d
Reverted "Fixed #30300 -- Allowed migrations to be loaded from directories without __init__.py file."
...
This reverts commit 3cd3bebe89
.
2020-07-22 07:04:06 +02:00
Mariusz Felisiak
83f55aafdd
Fixed #17653 -- Allowed using zero as AutoFields value on MySQL if NO_AUTO_VALUE_ON_ZERO SQL mode is enabled.
2020-07-20 09:48:31 +02:00
Ravindar Sharma
18d4eac7fc
Fixed #31731 -- Removed unreachable code for resetting sequences of auto-created m2m tables in sequence_reset_sql().
...
Unreachable because f.remote_field.through is truthy for all m2m
fields.
Resetting sequences of auto-created m2m tables in sequence_reset_sql()
is also unnecessary:
- in sqlsequencereset since c39ec6dccb
because auto-created tables are included in model_list,
- in loaddata because there is no it need to reset sequences for
models not loaded directly.
- in create_default_site() because it doesn't have m2m fields.
2020-07-17 08:16:32 +02:00
Mariusz Felisiak
bde33bdd51
Stopped adapting DecimalField values to strings on Oracle.
...
cx_Oracle handles decimal.Decimal.
expressions_case.tests.CaseExpressionTests.test_update_decimal fails without
this change.
Follow up to 9c5c9bd709
.
2020-07-16 09:43:08 +02:00
Simon Charette
1e38f1191d
Fixed #30446 -- Resolved Value.output_field for stdlib types.
...
This required implementing a limited form of dynamic dispatch to combine
expressions with numerical output. Refs #26355 should eventually provide
a better interface for that.
2020-07-15 10:58:29 +02:00
Simon Charette
9c5c9bd709
Stopped adapting DecimalField values to strings on PostgreSQL.
...
The psycopg2 backend uses the type information to provide type hints.
2020-07-14 07:40:10 +02:00
Simon Charette
f783a99072
Refs #25425 -- Allowed unresolved Value() instances to be compiled.
...
Previously unresolved Value() instances were only allowed to be
compiled if they weren't initialized with an output_field.
Given the usage of unresolved Value() instances is relatively common in
as_sql() overrides it's less controversial to add explicit support for
this previously undefined behavior now and revisit whether or not it
should be deprecated in the future.
2020-07-14 07:20:20 +02:00
Simon Charette
ca6c5e5fc2
Fixed #31770 -- Allowed select_for_update(of) on MySQL 8.0.1+.
2020-07-13 10:15:43 +02:00
François Freitag
04e4f80c1f
Sorted conflicting migrations by names.
2020-07-10 12:18:42 +02:00
matt ferrante
7d6916e827
Fixed #29789 -- Added support for nested relations to FilteredRelation.
2020-07-09 20:24:00 +02:00
Mariusz Felisiak
8a6df55f2d
Fixed #31773 -- Fixed preserving output_field in ExpressionWrapper for combined expressions.
...
Thanks Thodoris Sotiropoulos for the report and Simon Charette for the
implementation idea.
Regression in df32fd42b8
.
2020-07-09 11:55:03 +02:00
davidchorpash
779e615e36
Fixed #31573 -- Made QuerySet.update() respect ordering on MariaDB/MySQL.
2020-07-08 11:43:50 +02:00
Mariusz Felisiak
ae8338daf3
Fixed #31767 -- Fixed QuerySet.none() on combined queryset.
2020-07-07 12:15:05 +02:00
Jacob Walls
512da9d585
Fixed #23797 -- Fixed QuerySet.exclude() when rhs is a nullable column.
2020-07-06 10:15:37 +02:00
Hasan Ramezani
b7b7df5fbc
Fixed #31530 -- Added system checks for invalid model field names in CheckConstraint.check and UniqueConstraint.condition.
2020-07-06 09:16:57 +02:00
Sergey Fedoseev
4ce7d86cbe
Removed duplicated sqlite3 converter.
...
Converters typenames are case-insensitive. See
https://docs.python.org/3/library/sqlite3.html#sqlite3.register_converter .
2020-07-03 09:55:59 +02:00
Sergey Fedoseev
37389ae99e
Fixed #31758 -- Removed unneeded BytesToCharFieldConversionMixin.
...
Bug was fixed in mysqlclient 1.3.13.
2020-07-02 21:26:01 +02:00
Sergey Fedoseev
9d519d3dc4
Fixed #31755 -- Made temporal subtraction resolve output field.
2020-07-01 23:02:27 +02:00
Sergey Fedoseev
ed6b14d459
Refs #28621 -- Fixed crash of annotations with nested OuterRef.
2020-07-01 11:01:46 +02:00
Mariusz Felisiak
615e32162f
Fixed #31751 -- Fixed database introspection with cx_Oracle 8.
2020-06-30 09:50:15 +02:00
alosultan
a93425a37f
Fixed #31701 -- Made FileDescriptor subclass DeferredAttribute.
2020-06-30 08:25:20 +02:00
Sergey Fedoseev
dd5aa8cb5f
Fixed #28925 -- Fixed durations-only expressions crash on SQLite and MySQL.
...
This removes also unused DatabaseOperations.date_interval_sql().
2020-06-30 07:04:55 +02:00
Sergey Fedoseev
9d752dabe3
Refs #28925 -- Simplified CombinedExpression.as_sql() a bit.
2020-06-30 07:02:21 +02:00
Hannes Ljungberg
30e3d2d78d
Fixed #31745 -- Added error messages when using UniqueConstraint.include/opclasses with deferrable.
2020-06-29 06:41:23 +02:00
Mariusz Felisiak
62d85a2835
Fixed #31742 -- Fixed makemigrations crash on ForeignKey to an app with mixed case label.
...
Regression in 9e1b6b8a66
.
Thanks Ignacio Santolin for the report.
2020-06-26 23:18:59 +02:00
Jon Dufresne
e13cfc6dfd
Fixed #31596 -- Changed ForeignKey.validate() to use the base manager.
2020-06-25 11:36:20 +02:00
Nick Pope
074844e947
Fixed #31529 -- Added support for serialization of pathlib.Path/PurePath and os.PathLike in migrations.
2020-06-24 11:45:34 +02:00
Simon Charette
2e8941b6f9
Fixed #31735 -- Fixed migrations crash on namespaced inline FK addition on PostgreSQL.
...
The namespace of the constraint must be included when making the
constraint immediate.
Regression in 22ce5d0031
.
Thanks Rodrigo Estevao for the report.
2020-06-24 08:37:20 +02:00
Jon Dufresne
6f3e3e87ab
Fixed #31703 -- Made makemigrations name all initial migrations "initial".
...
When the MigrationAutodetector creates more than one initial migration
in a app, name all initial migrations "initial" rather than the opaque
"auto_<DATE>_<TIME>" name.
Initial migrations that have a descriptive name continue to use the
descriptive name.
2020-06-24 07:18:45 +02:00
Jon Dufresne
bce180dd05
Refs #31703 -- Moved MigrationAutodetector.suggest_name() to Migration.
...
Allows expanding the method to inspect additional attributes of the
migration instance. For example, the Migration.initial attribute.
2020-06-24 07:01:11 +02:00
Adam Johnson
e37f809618
Combined MySQL backend server info queries.
2020-06-22 09:58:46 +02:00
Mariusz Felisiak
82da72b748
Refs #28077 -- Added opclasses to Index.__repr__().
...
This also removes unnecessary commas between attributes.
2020-06-17 10:32:43 +02:00
Simon Charette
ea3beb4f5a
Refs #30446 -- Defined default output_field of text database functions.
...
This prevented the default behavior of
BaseExpression._resolve_output_field from error'ing out when such
functions accepted both expressions from mixed types
(e.g. SubStr(CharField, IntegerField, IntegerField)).
2020-06-16 10:08:02 +02:00
Hannes Ljungberg
7edc6e53a7
Fixed #31702 -- Added support for PostgreSQL opclasses in UniqueConstraint.
2020-06-16 07:19:00 +02:00
Sultan
6b25d24a57
Fixed #31706 -- Removed unnecessary getattr() call in FileDescriptor.__get__().
...
refresh_from_db() loads fields values.
2020-06-15 07:26:49 +02:00
Hasan Ramezani
9e8edc1e55
Fixed #31491 -- Allowed 'password' option in DATABASES['OPTIONS'] on MySQL.
2020-06-12 12:07:43 +02:00
Mariusz Felisiak
aeb8996a67
Fixed #31659 -- Made ExpressionWrapper preserve output_field for combined expressions.
...
Regression in df32fd42b8
.
Thanks Simon Charette for the review.
2020-06-12 07:20:06 +02:00
Adam Johnson
5776a1660e
Fixed #31667 -- Made __in lookup ignore None values.
2020-06-11 12:12:26 +02:00
alosultan
678c8dfee4
Fixed #31680 -- Removed unnecessary getattr() call in DeferredAttribute.__get__().
...
refresh_from_db() loads fields values.
2020-06-10 12:24:18 +02:00
SergBobrovsky
9bfa6a35f0
Removed unnecessary list() call in ModelBase.__new__().
...
Unnecessary since 58ad030d05
.
2020-06-10 12:10:36 +02:00
Hasan Ramezani
037a624120
Fixed #31657 -- Fixed ordering by attnames of self-referential ForeignKeys.
2020-06-10 11:14:26 +02:00
Nicolas Baccelli
b38d44229f
Fixed #31664 -- Reallowed using non-expressions having filterable attribute as rhs in queryset filters.
...
Regression in 4edad1ddf6
.
2020-06-08 08:17:23 +02:00
Mariusz Felisiak
78ad4b4b02
Fixed #31660 -- Fixed queryset crash when grouping by m2o relation.
...
Regression in 3a941230c8
.
Thanks Tomasz Szymański for the report.
2020-06-08 07:21:54 +02:00
Sasha Pachev
38a21f2d9e
Fixed #31663 -- Made DecimalField.to_python() handle non-numeric invalid values.
2020-06-05 21:13:36 +02:00
Mariusz Felisiak
f83b44075d
Refs #30913 -- Added system checks for covering indexes and unique constraints support.
2020-06-04 12:26:25 +02:00
Hannes Ljungberg
8c7992f658
Fixed #30913 -- Added support for covering indexes on PostgreSQL 11+.
2020-06-04 12:26:22 +02:00
Tim Graham
a7b4a04d6c
Refs #31630 -- Added CharField and IntegerField to DatabaseFeatures.introspected_field_types.
...
CockroachDB introspects CharField as TextField and IntegerField as
BigIntegerField.
2020-06-04 08:46:06 +02:00
Tim Graham
e24b63fe85
Refs #31630 -- Removed DatabaseFeatures.can_introspect_autofield.
2020-06-04 08:27:46 +02:00
Hasan Ramezani
e198beadad
Fixed #31630 -- Replaced introspection features with DatabaseFeatures.introspected_field_types.
2020-06-04 08:27:42 +02:00
Thodoris Sotiropoulos
df32fd42b8
Fixed #31651 -- Made ExpressionWrapper use grouping columns from wrapped expression.
2020-06-03 07:29:41 +02:00
Simon Charette
f8ef5f2c86
Refs #21171 -- Made Collector.delete() rollback in the correct database.
...
Regression in c7dd8490b882b2cefdc7faf431dc64c532b79c9.
2020-05-29 10:24:37 +02:00
Adam Johnson
fa58450a9a
Fixed #31468 -- Allowed specifying migration filename in Operation.
...
This adds also suggested filename for many built-in operations.
2020-05-28 11:42:53 +02:00
Ryan Heard
587b179d41
Fixed #31606 -- Allowed using condition with lookups in When() expression.
2020-05-27 07:32:23 +02:00
Laurent Tramoy
2aac176e86
Fixed #31614 -- Fixed aliases ordering by OrderBy() expressions of combined queryset.
2020-05-26 21:14:45 +02:00
Nan Liu
33c365781a
Fixed #31416 -- Made autodetector find dependencies for MTI model creation on base fields removal.
...
Removing a base field must take place before adding a new inherited
model that has a field with the same name.
2020-05-26 07:26:07 +02:00
Simon Charette
972000420e
Fixed #31624 -- Avoided subquery usage on QuerySet.all().delete().
...
Thanks Adam Johnson for the report.
Regression in 7acef095d7
.
2020-05-25 08:14:49 +02:00
Manuel Weitzman
a4e6030904
Fixed #30375 -- Added FOR NO KEY UPDATE support to QuerySet.select_for_update() on PostgreSQL.
2020-05-21 10:51:10 +02:00
Hasan Ramezani
3c7bf39e23
Fixed #31410 -- Added system checks for invalid model field names in UniqueConstraint.
2020-05-20 10:56:55 +02:00
Mariusz Felisiak
a125da6a7c
Fixed #31607 -- Fixed evaluated Subquery equality.
...
Regression in 691def10a0
.
2020-05-19 22:44:57 +02:00
Mariusz Felisiak
20a8a443f0
Fixed #31578 -- Dropped support for MySQL 5.6.
2020-05-19 10:56:39 +02:00
Tim Graham
f59a2b7306
Refs #12990 -- Added DatabaseFeatures.has_json_operators.
...
CockroachDB also has them.
2020-05-18 08:12:20 +02:00
Mariusz Felisiak
3a941230c8
Fixed #31584 -- Fixed crash when chaining values()/values_list() after 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 efa1908f66
.
2020-05-14 15:07:08 +02:00
Simon Charette
adfbf653dc
Fixed #31568 -- Fixed alias reference when aggregating over multiple subqueries.
...
691def10a0
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 09:31:15 +02:00
Simon Charette
42c08ee465
Fixed #31566 -- Fixed aliases crash when chaining values()/values_list() 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 fb3f034f1c
.
Thanks Makina Corpus for the report.
2020-05-14 08:16:16 +02:00
Mariusz Felisiak
e536fa5ce1
Fixed #31579 -- Dropped support for PostgreSQL 9.5 and PostGIS 2.2.
2020-05-14 06:33:00 +02:00
Hasan Ramezani
01a381cc17
Fixed #31580 -- Added error messages on distinct() following union(), intersection(), and difference().
2020-05-13 14:44:10 +02:00
Jon Dufresne
d6aff369ad
Refs #30116 -- Simplified regex match group access with Match.__getitem__().
...
The method has been available since Python 3.6. The shorter syntax is
also marginally faster.
2020-05-11 12:01:28 +02:00
Adam Johnson
a8b2db1cae
Optimized Model and QuerySet pickling version comparison.
2020-05-11 09:50:11 +02:00
sage
6789ded0a6
Fixed #12990 , Refs #27694 -- Added JSONField model field.
...
Thanks to Adam Johnson, Carlton Gibson, Mariusz Felisiak, and Raphael
Michel for mentoring this Google Summer of Code 2019 project and
everyone else who helped with the patch.
Special thanks to Mads Jensen, Nick Pope, and Simon Charette for
extensive reviews.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-05-08 07:23:31 +02:00
Mariusz Felisiak
f97f71f592
Refs #12990 -- Bumped mysqlclient requirement to >= 1.4.0.
...
MySQLdb.constants.FIELD_TYPE.JSON was added in mysqlclient 1.4.0rc2.
2020-05-08 06:14:42 +02:00
Adam Johnson
1c2c6f1b51
Fixed a/an typos in "SQL" usage.
2020-05-06 06:35:26 +02:00
Mariusz Felisiak
b73e66e758
Fixed #31538 -- Fixed Meta.ordering validation lookups that are not transforms.
...
Regression in 440505cb2c
.
Thanks Simon Meers for the report.
2020-05-05 09:08:29 +02:00
Adam Johnson
d17b380653
Refs #30573 -- Rephrased "Of Course" and "Obvious(ly)" in documentation and comments.
2020-05-04 12:10:47 +02:00
Ian Foote
c226c6cb32
Fixed #20581 -- Added support for deferrable unique constraints.
2020-04-30 10:43:50 +02:00
François Freitag
abea86f9e4
Removed unnecessary tuple wrapping of single format string argument.
2020-04-27 08:30:16 +02:00
Tim Schilling
a92cc84b4a
Refs #31369 -- Deprecated models.NullBooleanField in favor of BooleanField(null=True).
2020-04-24 10:10:45 +02:00
Hannes Ljungberg
104493311e
Refs #30913 -- Added BaseDatabaseSchemaEditor._index_condition_sql().
2020-04-24 07:10:26 +02:00