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
David Wobrock
533b208775
Fixed #29224 -- Fixed removing index_together indexes if exists unique_together constraint on the same fields.
2020-04-23 12:28:51 +02:00
Hannes Ljungberg
447980e72a
Fixed #31500 -- Fixed detecting of unique fields in QuerySet.in_bulk() when using Meta.constraints.
...
Detection of unique fields now takes into account non-partial unique
constraints.
2020-04-23 08:07:08 +02:00
Adam Johnson
67f9d076cf
Avoided unnecessary recompilation of ordering clause regex in SQLCompiler.
2020-04-22 20:28:01 +02:00
Simon Charette
06889d6206
Fixed #31499 -- Stored ModelState.fields into a dict.
...
This allows the removal of its O(n) .get_field_by_name method and many
other awkward access patterns.
While fields were initially stored in a list to preserve the initial
model definiton field ordering the auto-detector doesn't take field
ordering into account and no operations exists to reorder fields of a
model.
This makes the preservation of the field ordering completely superflous
because field reorganization after the creation of the model state
wouldn't be taken into account.
2020-04-22 07:10:00 +02:00
Simon Charette
696024fb73
Refs #31499 -- Ignored field ordering to determine ModelState equality.
2020-04-22 06:20:54 +02:00
Jon Dufresne
75866b93cc
Fixed #31479 -- Added support to reset sequences on SQLite.
2020-04-21 10:41:47 +02:00
Simon Charette
5220ca8d8a
Refs #30591 -- Adjusted table rebuild for non-pk relationship on SQLite.
...
The existing code was only accounting for primary key changes and not
all unique key fields that can be referenced.
2020-04-21 08:37:47 +02:00
Simon Charette
a548280857
Fixed #31064 -- Recreated auto-created many-to-many tables on primary key data type change on SQLite.
...
Both local and remote auto-created many-to-many relationships were
affected.
2020-04-21 08:37:40 +02:00
Simon Charette
330c0ed7c4
Stopped rebuilding referenced tables multiple times on SQLite alterations.
2020-04-20 13:13:57 +02:00
Jon Dufresne
505fec6bad
Capitalized Unicode in docs, strings, and comments.
2020-04-20 12:10:33 +02:00
Hasan Ramezani
35a67b3731
Fixed #31474 -- Made QuerySet.delete() not return the number of deleted objects if it's zero.
2020-04-20 09:51:54 +02:00
Jon Dufresne
5673d4b102
Fixed #31477 -- Removed "using" argument from DatabaseOperations.execute_sql_flush().
2020-04-20 07:49:35 +02:00
Jon Dufresne
661e39c8d5
Fixed #24559 -- Made MigrationLoader.load_disk() catch more specific ModuleNotFoundError.
...
Avoids inspecting the exception message, which is not considered a
stable API and can change across Python versions.
ModuleNotFoundError was introduced in Python 3.6. It is a subclass of
ImportError that is raised when the imported module does not exist. It
is not raised for other errors that can occur during an import. This
exception instance has the property "name" which holds the name of
module that failed to import.
2020-04-20 07:22:20 +02:00
Jon Dufresne
75410228df
Fixed #31473 -- Made sql_flush() use RESTART IDENTITY to reset sequences on PostgreSQL.
...
The sql_flush() positional argument sequences is replaced by the boolean
keyword-only argument reset_sequences. This ensures that the old
function signature can't be used by mistake when upgrading Django. When
the new argument is True, the sequences of the truncated tables will
reset. Using a single boolean value, rather than a list, allows making a
binary yes/no choice as to whether to reset all sequences rather than a
working on a completely different set.
2020-04-17 11:57:24 +02:00
Jon Dufresne
8005829bb9
Simplified DatabaseOperations.sql_flush() on Oracle and PostgreSQL.
...
Added early return to decrease an indentation level.
2020-04-17 10:46:19 +02:00
Mariusz Felisiak
eeab63e57e
Refs #26552 -- Made reloading the database for tests check only loaded tables constraints.
2020-04-17 08:14:27 +02:00
sobolevn
578c03b276
Fixed #31223 -- Added __class_getitem__() to Manager and QuerySet.
2020-04-15 11:26:11 +02:00
Adam Johnson
5b884d45ac
Fixed #29501 -- Allowed dbshell to pass options to underlying tool.
2020-04-14 14:02:51 +01:00
Ichlasul Affan
53d229ff63
Fixed #31351 -- Added system checks for partial indexes and unique constraints support.
2020-04-10 12:00:27 +02:00
Simon Charette
f5ede1cb6d
Refs #28305 -- Consolidated field referencing detection in migrations.
...
This moves all the field referencing resolution methods to shared
functions instead of duplicating efforts amongst state_forwards and
references methods.
2020-04-10 09:19:16 +02:00
Mariusz Felisiak
9cab261427
Refs #31411 -- Used RENAME COLUMN on MySQL 8.0.4+.
...
MySQL 8.0.3 added support for this syntax but also imposed a
restriction against ALTER TABLE RENAME on tables in a foreign key
relationship if a LOCK TABLES was active which has been lifted in MySQL
8.0.4+.
2020-04-09 11:16:28 +02:00
Simon Charette
8b7b19f6c9
Replaced ModelTuple by a model resolving function and bare tuples.
...
ModelTuple made handling of app_label=None easier but it isn't necessary
anymore.
2020-04-09 10:08:06 +02:00
Simon Charette
5ca5178a78
Replaced Operation._get_model_tuple() by ModelTuple.from_model().
...
This method predated the introduction of ModelTuple and had a single use.
2020-04-09 10:08:06 +02:00
Simon Charette
8069526ce3
Made Operation.references_model/references_field require app_label.
...
This will allow them to drop a ton of logic to deal with null
app_label.
2020-04-09 10:08:06 +02:00
Simon Charette
25bf15c0da
Refs #22608 -- Made app_label required when optimizing migrations.
...
This paved the way for the removal of lot of logic when app_label was
not specified.
2020-04-09 10:08:02 +02:00
miigotu
210657b791
Fixed #28184 -- Allowed using a callable for FileField and ImageField storage.
2020-04-08 11:26:17 +02:00
Simon Charette
ad811335bd
Refs #29000 -- Restored delayed model rendering of RenameField.
...
Non-delayed rendering is unnecessary and wasteful now that state models
relationship consistency on delayed reload is ensured.
This partly reverts commit fcc4e251db
.
2020-04-07 09:20:46 +02:00
Simon Charette
1d16c5d562
Refs #27666 -- Ensured relationship consistency on delayed reloads.
...
Delayed reloads of state models broke identity based relationships
between direct and non-direct ancestors.
Basing models.Options related objects map of model labels instead of
their identity ensured relationship consistency is maintained.
Refs #30966 .
Co-authored-by: Hasan Ramezani <hasan.r67@gmail.com>
2020-04-07 09:20:46 +02:00
Sergey Fedoseev
026719cf17
Fixed #31030 -- Registered SQLite functions as deterministic on Python 3.8+.
2020-04-06 11:26:00 +02:00
Simon Charette
513948735b
Fixed #31426 -- Added proper field validation to QuerySet.order_by().
...
Resolve the field reference instead of using fragile regex based string
reference validation.
2020-04-06 10:19:49 +02:00
Simon Charette
98ea4f0f46
Refs #7098 -- Deprecated passing raw column aliases to order_by().
...
Now that order_by() has expression support passing RawSQL() can achieve
the same result.
This was also already supported through QuerySet.extra(order_by) for
years but this API is more or less deprecated at this point.
2020-04-06 10:01:02 +02:00
Hasan Ramezani
4237050684
Fixed #31420 -- Fixed crash when filtering subquery annotation against a SimpleLazyObject.
...
Thanks Simon Charette for the solution and analysis.
2020-04-06 07:11:29 +02:00
Hasan Ramezani
6fbce45b03
Fixed #31415 -- Fixed crash when nested OuterRef is used with operators or in database functions.
2020-04-04 20:16:00 +02:00
c-bata
89032876f4
Fixed #31275 -- Optimized sql_flush() without resetting sequences on MySQL.
...
Co-Authored-By: Simon Charette <charettes@users.noreply.github.com>
2020-04-02 12:57:53 +02:00
Matthijs Kooijman
75520e1767
Refs #31051 -- Optimized serialize_db_to_string() by avoiding creation of models list.
2020-04-02 11:38:23 +02:00
Matthijs Kooijman
289d0ec6fd
Refs #31051 -- Fixed reloading the database with circular related objects and natural keys for tests.
...
Made deserialize_db_from_string() do not sort dependencies.
deserialize_db_from_string() doesn't use natural keys, so there is no
need to sort dependencies in serialize_db_to_string(). Moreover,
sorting models cause issues for circular dependencies.
2020-04-02 11:35:33 +02:00
Hasan Ramezani
1fe3e24264
Fixed #31411 -- Used RENAME COLUMN on MariaDB 10.5.2+.
2020-04-02 06:56:15 +02:00
Mariusz Felisiak
5c24c16e68
Refs #12990 -- Moved PostgresSimpleLookup to the django.db.models.lookups.PostgresOperatorLookup.
2020-04-01 10:55:53 +02:00
Adam Johnson
93ed71e058
Fixed #31403 -- Added support for returning fields from INSERT statements on MariaDB 10.5+.
2020-03-31 07:25:50 +02:00
Adam Johnson
c06d7c9239
Refs #31403 -- Made SQLInsertCompiler.execute_sql() always return an iterable of rows.
...
List of tuples.
2020-03-31 07:12:11 +02:00
Tim Graham
8bebb8f126
Fixed #31399 -- Made SchemaEditor._alter_field() ignore foreign key constraints if unsupported.
2020-03-25 20:13:29 +01:00
Adam Johnson
9e1b6b8a66
Fixed #23916 -- Allowed makemigrations to handle related model name case changes.
...
Made autodetector ignore related model name case changes so unnecessary
migrations are not created.
2020-03-25 10:39:34 +01:00
Hannes Ljungberg
f3da09df0f
Fixed #31396 -- Added binary XOR operator to F expressions.
2020-03-25 10:16:30 +01:00
Hasan Ramezani
10866a10fe
Fixed #31377 -- Disabled grouping by aliases on QuerySet.values()/values_list() when they collide with field names.
...
Regression in fb3f034f1c
.
Thanks Holovashchenko Vadym for the report.
2020-03-25 09:13:46 +01:00
Shipeng Feng
8fe2447a01
Fixed #31392 -- Avoided unnecessary SchemaEditor.effective_default() calls when altering a field.
2020-03-24 13:09:43 +01:00
Hasan Ramezani
53b6a466d8
Refs #29724 -- Added is_dst parameter to QuerySet.datetimes().
...
Thanks Simon Charette for the review and Mariusz Felisiak for tests.
2020-03-20 12:55:33 +01:00
Rohit
2695ac8e04
Fixed #31144 -- Relaxed system check for max_length of CharFields on MySQL/MariaDB by turning into a warning.
2020-03-20 12:28:10 +01:00
Jon Dufresne
013147fae2
Fixed #31285 -- Fixed inherited Meta.ordering of "-pk".
2020-03-19 12:57:07 +01:00
Mariusz Felisiak
6e026aec5f
Refs #29548 -- Mentioned MariaDB in database system checks.
2020-03-19 09:42:04 +01:00
Mariusz Felisiak
5c8441a0b8
Refs #31055 -- Made long column names checks support databases aware.
2020-03-18 18:41:40 +01:00
Simon Charette
9f07f27124
Fixed #31376 -- Optimized nulls ordering when possible on SQLite and MySQL.
...
Both backends order NULLs first on ascending ordering and last on
descending ordering which makes ORDER BY IS (NOT)? NULL wasteful when
asc(nulls_first) and desc(nulls_last) are used since it prevents indice
usage.
2020-03-18 06:43:49 +01:00
Claude Paroz
e663f695fb
Fixed #31359 -- Deprecated get_random_string() calls without an explicit length.
2020-03-11 13:16:44 +01:00
David Wobrock
d88365708c
Fixed #31318 -- Allowed sqlmigrate to inspect squashed migrations.
2020-03-09 08:42:30 +01:00
David Wobrock
71c1b7fb34
Refs #31318 -- Moved MigrationExecutor.collect_sql() to MigrationLoader.
...
collect_sql() is used only in sqlmigrate.
2020-03-09 08:23:56 +01:00
shankarj67
df4d622cac
Fixed #31345 -- Added BaseDatabaseIntrospection.get_relations().
2020-03-06 08:53:32 +01:00
Abhijeet Viswa
babd412685
Fixed #29129 -- Skipped UPDATE when adding a model instance with inherited primary key that has a default.
2020-03-05 12:08:38 +01:00
Jon Dufresne
769cee5252
Fixed #31327 -- Deprecated providing_args argument for Signal.
2020-03-05 09:38:52 +01:00
aryan
427a7e419b
Fixed #31333 -- Added BaseDatabaseIntrospection.get_table_description().
2020-03-04 12:26:31 +01:00
Mariusz Felisiak
a19505eb2e
Refs #31331 -- Added DatabaseWrapper.sql_mode to MySQL.
2020-03-03 11:25:37 +01:00
Mariusz Felisiak
7b8fa1653f
Fixed #31150 -- Included subqueries that reference related fields in GROUP BY clauses.
...
Thanks Johannes Hoppe for the report.
Regression in fb3f034f1c
.
Co-authored-by: Simon Charette <charette.s@gmail.com>
2020-03-03 11:25:37 +01:00
Simon Charette
daaa894960
Refs #26064 -- Avoided unnecessary list slicing in migration optimizer.
...
The in_between list is only necessary if an optimization is possible.
2020-03-02 08:42:06 +01:00
Hans Aarne Liblik
a21f7b91db
Fixed #31301 -- Fixed crash of QuerySet.bulk_create() with mixed empty and set ForeignKeys to AutoFields on Oracle.
2020-02-28 12:56:03 +01:00
Matheus Cunha Motta
e908eb6287
Fixed #31310 -- Fixed hints in checks for using intermediate model with ambiguous foreign key.
...
symmetrical=False is not required since
87b1ad6e73
.
2020-02-28 08:38:57 +01:00
Rohit
486786c4c4
Fixed #31251 -- Disabled grouping by OuterRef() annotation.
2020-02-27 13:02:49 +01:00
Valze
5bf28ac2ed
Fixed #31185 -- Fixed detecting of unique fields in ForeignKey/ForeignObject checks when using Meta.constraints.
2020-02-27 10:53:29 +01:00
Simon Charette
41ebe60728
Fixed #31312 -- Properly ordered temporal subtraction params on MySQL.
...
Regression in 9bcbcd599a
.
Thanks rick2ricks for the report.
2020-02-27 08:50:55 +01:00
Taoup
271fdab8b7
Fixed #31286 -- Made database specific fields checks databases aware.
...
Follow up to 0b83c8cc4d
.
2020-02-24 14:23:46 +01:00
Mariusz Felisiak
d270c10a72
Refs #31187 -- Added total_unique_constraints property to model's Options.
2020-02-19 09:36:19 +01:00
Carlton Gibson
a34cb5a6d4
Refs #31282 -- Clarified M2O add/remove/set with PK behaviour.
...
Improved error message for remove() and added tests.
2020-02-18 19:54:29 +01:00
Mariusz Felisiak
2a038521c4
Fixed #31271 -- Preserved ordering when unifying query parameters on Oracle.
...
This caused misplacing parameters in logged SQL queries.
Regression in 79065b55a7
.
Thanks Hans Aarne Liblik for the report.
2020-02-18 11:45:12 +01:00
Taoup
cbb6531e5b
Fixed #31228 -- Reallowed aggregates to be used with multiple expressions and no DISTINCT on SQLite.
...
Regression in bc05547cd8
.
Thanks Andy Terra for the report.
2020-02-18 10:32:23 +01:00
Xavier Francisco
8690878507
Fixed #31277 -- Relaxed system check of m2m intermediary tables for db_table collision when database routers are installed.
...
Turned the error into a warning when database routers are installed.
2020-02-17 13:53:45 +01:00
Matthijs Kooijman
98f23a8af0
Fixed #26552 -- Deferred constraint checks when reloading the database with data for tests.
...
deserialize_db_from_string() loads the full serialized database
contents, which might contain forward references and cycles. That
caused IntegrityError because constraints were checked immediately.
Now, it loads data in a transaction with constraint checks deferred
until the end of the transaction.
2020-02-14 13:18:06 +01:00
Abhijeet Viswa
1712a76b9d
Fixed #31246 -- Fixed locking models in QuerySet.select_for_update(of=()) for related fields and parent link fields with multi-table inheritance.
...
Partly regression in 0107e3d105
.
2020-02-11 20:43:57 +01:00
Simon Charette
71756bdfed
Fixed #31055 -- Made constraint checks support databases aware.
2020-02-07 11:03:53 +01:00
Jon Dufresne
3259983f56
Fixed #31233 -- Closed database connections and cursors after use.
2020-02-06 15:35:23 +01:00
Jon Dufresne
f48f671223
Refs #31233 -- Changed DatabaseWrapper._nodb_connection to _nodb_cursor().
...
It is now a method instead of a property and returns a context manager
that yields a cursor on entry and closes the cursor and connection upon
exit.
2020-02-06 15:29:38 +01:00
Hasan Ramezani
da79ee472d
Fixed #26813 -- Prevented empty choice in ModelChoiceField with RadioSelect for fields with blank=False.
2020-02-05 10:27:01 +01:00
Nick Pope
335c9c94ac
Simplified imports from django.db and django.contrib.gis.db.
2020-02-04 13:20:06 +01:00
Mariusz Felisiak
6b178a3e93
Fixed #31217 -- Made QuerySet.values()/values_list() group by not selected annotations with aggregations used in order_by().
...
Regression in 59b4e99dd0
.
Thanks Jon Dufresne for the report and Simon Charette for the review.
2020-02-03 07:48:11 +01:00
Adam Johnson
c1b24718e0
Cached ForeignObject.(local/foreign/reverse)_related_fields properties.
2020-01-31 14:07:52 +01:00
Hasan Ramezani
a97111eabf
Fixed 31207 -- Prevented references to non-local remote fields in ForeignKey.to_field.
...
Thanks Simon Charette for the initial patch and review.
2020-01-31 10:19:12 +01:00
Matthias Kestenholz
4e8d89020c
Fixed #31219 -- Fixed object deletion crash for nested protected related objects.
2020-01-31 09:07:58 +01:00
Taoup
efc1c73bf5
Simplified DeferredAttribute.__get__() a bit.
2020-01-29 16:06:56 +01:00
Mariusz Felisiak
b7a3a6c9ef
Used model's Options.label/label_lower where applicable.
2020-01-29 12:09:20 +01:00
Hasan Ramezani
4ca5c565f4
Refs #27852 -- Fixed object deletion to show all restricted related objects rather than just the first one.
2020-01-29 09:02:23 +01:00
Mariusz Felisiak
2a6fc89018
Refs #27852 -- Renamed a loop variable in Collector.collect() to avoid redefinition.
2020-01-29 09:02:23 +01:00
Jon Dufresne
958977f662
Fixed #31212 -- Updated psycopg links to HTTPS and new location.
2020-01-29 06:25:40 +01:00
Hasan Ramezani
ab3cbd8b9a
Refs #27852 -- Fixed object deletion to show all protected related objects rather than just the first one.
...
Thanks Anton Samarchyan for the initial patch.
2020-01-27 12:21:02 +01:00
Tim Graham
227d0c7365
Fixed #31183 -- Added a feature flag for "<db> only supports UNBOUNDED together with PRECEDING and FOLLOWING".
2020-01-20 20:03:35 +01:00
Jon Dufresne
26be703fe6
Changed re-raising an exception to use bare raise syntax where appropriate.
2020-01-20 11:44:28 +01:00
Adam Johnson
1e0dcd6c8b
Used constant instead of hard-coded value for recursive relationship.
2020-01-16 08:34:58 +01:00
Mariusz Felisiak
bf77669453
Fixed #29998 -- Allowed multiple OneToOneFields to the parent model.
...
We assumed that any OneToOneField's in a child model must be the
parent link and raised an error when parent_link=True was not
specified. This patch allows to specify multiple OneToOneField's to
the parent model.
OneToOneField's without a custom related_name will raise fields.E304
and fields.E305 so this should warn users when they try to override
the auto-created OneToOneField.
2020-01-16 08:06:16 +01:00
Carlton Gibson
29c126bb34
Fixed #31124 -- Fixed setting of get_FOO_display() when overriding inherited choices.
...
Regression in 2d38eb0ab9
2020-01-15 15:35:22 +01:00
Mariusz Felisiak
59b4e99dd0
Refs #31136 -- Made QuerySet.values()/values_list() group only by selected annotation.
...
Regression in 0f843fdd5b
.
2020-01-15 09:32:42 +01:00
chetan22
63e6ee1f99
Fixed #29871 -- Allowed setting pk=None on a child model to create a copy.
...
Thanks Simon Charette and Tim Graham for the initial patch.
2020-01-15 08:28:30 +01:00
Mariusz Felisiak
6f7998adc7
Fixed #31155 -- Fixed a system check for the longest choice when a named group contains only non-string values.
...
Regression in b6251956b6
.
Thanks Murat Guchetl for the report.
2020-01-11 19:47:36 +01:00
Adam Johnson
5166097d7c
Fixed #31154 -- Added support for using enumeration types in templates.
...
Enumeration helpers are callables, so the template system tried to call
them with no arguments.
Thanks Rupert Baker for helping discover this.
2020-01-10 07:52:06 +01:00
Hasan Ramezani
eef3ea847e
Fixed #31148 -- Added error messages on update()/delete() operations following union(), intersection(), and difference().
2020-01-09 12:20:54 +01:00
Hasan Ramezani
f600e3fad6
Fixed #21238 -- Fixed restoring attributes when pickling FileField and ImageField.
2020-01-09 09:37:59 +01:00
Taoup
979f61abd3
Simplified model's Options.add_field() a bit.
2020-01-07 11:58:06 +01:00
Mariusz Felisiak
0f843fdd5b
Fixed #31136 -- Disabled grouping by aliases on QuerySet.values()/values_list().
...
Regression in fb3f034f1c
.
Thanks Sigurd Ljødal for the report.
2020-01-04 20:49:11 +01:00
Simon Charette
9bcbcd599a
Fixed #31133 -- Fixed crash when subtracting against a subquery annotation.
...
The subtract_temporals() database operation was not handling expressions
returning SQL params in mixed database types.
Regression in 3543129822
.
Thanks Reupen Shah for the report.
2020-01-03 10:35:08 +01:00
Simon Charette
5779cc938a
Fixed #31071 -- Disabled insert optimization for primary keys with defaults when loading fixtures.
...
Model.save_base() is called directly when loading fixtures and assumes
existing rows will be updated. Branching of "raw" allows to maintain
the optimization introduced in #29260 while supporting this edge case.
Regression in 85458e94e3
.
Thanks Reupen Shah for the report.
2019-12-30 07:49:10 +01:00
Mariusz Felisiak
22ce5d0031
Fixed #31106 -- Fixed migrations crash on PostgreSQL 10+ when adding FK constraints inline and changing data.
...
This allows adding foreign key constraints inline and changing data in
the same migration on PostgreSQL 10+.
Regression in 738faf9da2
.
Thanks Janne Rönkkö for the report and Simon Charette for the
implementation idea and review.
2019-12-23 23:28:59 +01:00
Simon Charette
720de4d044
Fixed #31109 -- Disabled grouping by aliases on QuerySet.exists().
...
Clearing the SELECT clause in Query.has_results was orphaning GROUP BY
references to it.
Thanks Thierry Bastian for the report and Baptiste Mispelon for the
bisect.
Regression in fb3f034f1c
.
2019-12-23 09:24:03 +01:00
Hasan Ramezani
a3fc24f014
Fixed #31095 -- Made RelatedManager.set() preserve existing m2m relations with an invalid type.
2019-12-19 13:33:05 +01:00
Simon Charette
5a4d7285bd
Fixed #31094 -- Included columns referenced by subqueries in GROUP BY on aggregations.
...
Thanks Johannes Hoppe for the report.
Regression in fb3f034f1c
.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-12-19 10:04:56 +01:00
James Turk
ff00a05347
Fixed #31088 -- Added support for websearch searching in SearchQuery.
2019-12-16 14:59:59 +01:00
Ram Rachum
972d93a95e
Optimized containment check in ChoicesMeta.
2019-12-16 11:22:45 +01:00
Zeynel Özdemir
9d40b6bbf4
Fixed #31076 -- Fixed dbshell crash on Windows with Python < 3.8.
...
subprocess.run()'s args parameter accepts path-like objects on Windows
since Python 3.8.
2019-12-16 11:20:41 +01:00
Sergey Fedoseev
88637064b3
Refs #28373 -- Stopped setting tzinfo in typecast_timestamp().
...
Unnecessary since cef3f2d3c6
. When
USE_TZ=True, conn_tznames is always passed to methods that use
typecast_timestamp(). Therefore, it can return naive datetimes.
2019-12-11 13:59:49 +01:00
Baptiste Mispelon
09341856ed
Used Signature API instead of deprecated inspect.getcallargs().
...
inspect.getcallargs() was deprecated in Python 3.5 and the Signature
API (PEP 362) has better support for decorated functions (by default,
it follows the __wrapped__ attribute set by functools.wraps for
example).
2019-12-10 09:36:34 +01:00
Mariusz Felisiak
d6505273cd
Refs #31044 -- Fixed error message when using Prefetch with a values_list() queryset.
2019-12-09 15:45:53 +01:00
Hasan Ramezani
4540842bc3
Fixed #31044 -- Errored nicely when using Prefetch with a raw() queryset.
2019-12-09 15:45:18 +01:00
Alex Aktsipetrov
723fc7fcf6
Made Query.check_filterable() use bool by default instead of str.
2019-12-06 13:52:36 +01:00
Alex Aktsipetrov
bf12273db4
Fixed #31060 -- Reallowed window expressions to be used in conditions outside of queryset filters.
...
Regression in 4edad1ddf6
.
Thanks utapyngo for the report.
2019-12-06 13:52:16 +01:00
Aymeric Augustin
c06492dd87
Fixed #23524 -- Allowed DATABASES['TIME_ZONE'] option on PostgreSQL.
2019-12-04 18:22:08 +01:00
Aymeric Augustin
ad88524e4d
Refs #23524 -- Unified BaseDatabaseWrapper.timezone.
...
There was a special case in this property to return None when the
database backend supports time zone. However, only the PostgreSQL
backend supports time zones and it never uses this property.
2019-12-04 18:07:51 +01:00
Baptiste Mispelon
26cab4e8c1
Fixed #31046 -- Allowed RelatedManager.add()/create()/set() to accept callable values in through_defaults.
2019-12-03 19:47:38 +01:00
Baptiste Mispelon
c50839fccf
Simplified RelatedManager._add_items() a bit.
...
Added early return in RelatedManager._add_items() to decrease an
indentation level.
2019-12-03 19:47:32 +01:00
Baptiste Mispelon
6c0341f127
Refs #31046 -- Added django.db.models.utils.resolve_callables().
2019-12-03 19:47:32 +01:00
Mariusz Felisiak
0107e3d105
Fixed #30953 -- Made select_for_update() lock queryset's model when using "self" with multi-table inheritance.
...
Thanks Abhijeet Viswa for the report and initial patch.
2019-12-02 07:57:19 +01:00
John Bowen
29d8198841
Fixed #27914 -- Fixed serialization of nested classes in migrations.
2019-11-25 11:12:44 +01:00
Simon Charette
379bf1a2d4
Fixed #8467 -- Prevented crash when adding existent m2m relation with an invalid type.
...
This was an issue anymore on backends that allows conflicts to be
ignored (Refs #19544 ) as long the provided values were coercible to the
expected type. However on the remaining backends that don't support
this feature, namely Oracle, this could still result in an
IntegrityError.
By attempting to coerce the provided values to the expected types in
Python beforehand we allow the existing value set intersection in
ManyRelatedManager._get_missing_target_ids to prevent the problematic
insertion attempts.
Thanks Baptiste Mispelon for triaging this old ticket against the
current state of the master branch.
2019-11-22 09:08:10 +01:00
Farhaan Bukhsh
664c98f1f8
Fixed #30413 -- Fixed test database signature on SQLite when test database name is provided.
...
Previously, the same signature was created for multiple in-memory
databases on SQLite when they had tests databases names
DATABASES['TEST']['NAME'].
2019-11-21 19:50:24 +01:00
Simon Charette
f97a6123c0
Refs #25367 -- Made Query.build_filter() raise TypeError on non-conditional expressions.
2019-11-21 11:56:35 +01:00
Simon Charette
e9a0e1d4f6
Fixed #30484 -- Added conditional expressions support to CheckConstraint.
2019-11-21 11:56:35 +01:00
Simon Charette
37e6c5b79b
Refs #25367 -- Moved conditional expression wrapping to the Exact lookup.
2019-11-21 11:56:35 +01:00
Simon Charette
306b687520
Refs #11964 -- Removed SimpleCol in favor of Query(alias_cols).
...
This prevent having to pass simple_col through multiple function calls
by defining whether or not references should be resolved with aliases
at the Query level.
2019-11-21 11:56:35 +01:00
Jon Dufresne
f5ebdfce5c
Fixed #25388 -- Added an option to allow disabling of migrations during test database creation.
2019-11-20 20:42:38 +01:00
Daniel Izquierdo
89abecc75d
Fixed #27272 -- Added an on_delete RESTRICT handler to allow cascading deletions while protecting direct ones.
2019-11-19 10:55:05 +01:00
Daniel Izquierdo
4e1d809aa5
Refs #27272 -- Added Collector.add_dependency().
2019-11-19 10:49:47 +01:00
Caio Ariede
555bebe774
Fixed #30987 -- Added models.PositiveBigIntegerField.
2019-11-19 09:34:11 +01:00
Jon Dufresne
57a3d96ff5
Replaced unnecessary str()/bytes() calls with literals.
2019-11-18 15:30:10 +01:00
Simon Charette
11e327a3ff
Fixed #30988 -- Deprecated the InvalidQuery exception.
...
It was barely documented without pointers at its defining location and
was abused to prevent misuse of the QuerySet field deferring feature.
2019-11-18 14:06:51 +01:00
Simon Charette
3ca77e2b84
Replaced QueryWrapper single usage with RawSQL.
2019-11-18 10:45:24 +01:00
Mariusz Felisiak
8685e764ef
Fixed #30986 -- Fixed queryset crash when filtering against boolean RawSQL expressions on Oracle.
2019-11-18 08:50:09 +01:00
Hasan Ramezani
530dd193f2
Fixed #29808 -- Fixed initial migration detection when identifiers are case-insensitive.
...
Thanks Simon Charette for the review.
2019-11-15 09:01:30 +01:00