summaryrefslogtreecommitdiff
path: root/django/db
AgeCommit message (Collapse)Author
2023-08-03Refs #33713 -- Removed unnecessary version check in ↵Mariusz Felisiak
DatabaseFeatures.update_can_self_select on MariaDB. Follow up to 19297de2fe5a9c47e471c64249366f39fe12f16a.
2023-08-03Fixed #34761 -- Dropped support for MySQL < 8.0.11.Mariusz Felisiak
2023-08-02Removed unneeded escapes in regexes.Mariusz Felisiak
Special characters lose their special meaning inside sets of characters. "-" lose its special meaning if it's placed as the first or last character. Follow up to 7c6b66383da5f9a67142334cd2ed2d769739e8f1.
2023-08-02Fixed #33507 -- Used UUID data type on MariaDB 10.7+.Albert Defler
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2023-08-01Fixed #34750 -- Fixed QuerySet.count() when grouping by unused multi-valued ↵Mariusz Felisiak
annotations. Thanks Toan Vuong for the report. Thanks Simon Charette for the review. Regression in 59bea9efd2768102fc9d3aedda469502c218e9b7.
2023-07-31Fixed #34331 -- Added QuerySet.aiterator() support for prefetch_related().John Parton
2023-07-30Fixed warnings per flake8 6.1.0.Mariusz Felisiak
2023-07-29Fixed #34748 -- Fixed queryset crash when grouping by a reference in a subquery.Simon Charette
Regression in dd68af62b2b27ece50d434f6a351877212e15c3f. Thanks Toan Vuong for the report.
2023-07-22Refs #24686 -- Made AlterField operation a noop when renaming related model ↵devilsautumn
with db_table.
2023-07-21Refs #34362 -- Added get_child_with_renamed_prefix() hook.Francesco Panico
2023-07-19Made UniqueConstraint raise TypeError for type violations.Simon Charette
2023-07-19Fixed #34701 -- Added support for NULLS [NOT] DISTINCT on PostgreSQL 15+.Simon Charette
2023-07-19Reduced unique constraint eligibility code duplication.Simon Charette
2023-07-19Fixed #34717 -- Fixed QuerySet.aggregate() crash when referencing window ↵Simon Charette
functions. Regression in 59bea9efd2768102fc9d3aedda469502c218e9b7. Refs #28477. Thanks younes-chaoui for the report.
2023-07-18Fixed #34716 -- Fixed serialization of nested class methods in migrations.Nicolò Intrieri
Co-authored-by: Nicolò <nicolo.intrieri@spinforward.it>
2023-07-12Fixed #34697 -- Fixed non-deterministic order of dependencies and ↵Yury V. Zaytsev
sets/frozensets in migrations. Co-authored-by: Dakota Hawkins <dakotahawkins@gmail.com>
2023-07-10Fixed #34698 -- Made QuerySet.bulk_create() retrieve primary keys when ↵Thomas Chaumeny
updating conflicts.
2023-07-07Refs #32433 -- Reallowed calling QuerySet.delete() after distinct().Simon Charette
While values(*field_excluding_pk).distinct() and distinct(*field_excluding_pk) can reduce the number of resulting rows in a way that makes subsequent delete() calls ambiguous standalone .distinct() calls cannot. Since delete() already disallows chain usages with values() the only case that needs to be handled, as originally reported, is when DISTINCT ON is used via distinct(*fields). Refs #32682 which had to resort to subqueries to prevent duplicates in the admin and caused significant performance regressions on MySQL (refs #34639). This partly reverts 6307c3f1a123f5975c73b231e8ac4f115fd72c0d.
2023-06-29Fixed #30382 -- Allowed specifying parent classes in force_insert of ↵Akash Kumar Sen
Model.save().
2023-06-27Fixed #34671 -- Fixed collation introspection for views and materialized ↵Mariusz Felisiak
views on Oracle. Thanks Philipp Maino for the report.
2023-06-23Improved style of n-tuple wording in docs and comments.Nick Pope
2023-06-20Refs #34634 -- Fixed creating diamond-shaped MTI objects with ancestors ↵Akash Kumar Sen
inherited from different paths. Co-authored-by: Simon Charette <charette.s@gmail.com>
2023-06-20Fixed #34634 -- Adjusted system check for clashing fields to warn about ↵Akash Kumar Sen
links to common parent for MTI models.
2023-06-19Refs #34517 -- Restored skipping ImageFileField.update_dimension_fields ↵François Freitag
without width/height fields. This avoids reading the image size when the dimensions fields (image_width, image_height) do not exist, as that operation may be expensive. Partially reverts ea53e7c09f1b8864c20c65976bbeaeab77abdaec, that dropped the check for the dimension fields in update_dimension_fields(), because the post_init signal was no longer registered without dimension fields. However, another code path to that function exists: when the ImageFileField is save()d, the name from the storage is setattr()ed on the field, and ImageFileDescriptor calls update_dimension_fields() because the image size might have changed. Keep bailing out early when dimensions are unused. Besides, computing the image dimensions causes to close() the file, resulting in a backward-incompatible change. The test protects against that change.
2023-06-15Fixed #33414 -- Fixed creating diamond-shaped MTI objects for common ↵Akash Kumar Sen
ancestor with primary key that has a default. Co-authored-by: Simon Charette <charette.s@gmail.com>
2023-06-14Refs #32143 -- Removed superflous constraints on excluded query.Simon Charette
The outer query reference is not necessary when alias can be reused and can even be harmful by confusing query planers. Refs #34597.
2023-06-14Refs #32143 -- Adjusted a comment about subquery usage in Query.split_exclude().Simon Charette
2023-06-08Fixed #34604 -- Corrected fallback SQL for n-ary logical XOR.Anders Kaseorg
An n-ary logical XOR Q(…) ^ Q(…) ^ … ^ Q(…) should evaluate to true when an odd number of its operands evaluate to true, not when exactly one operand evaluates to true.
2023-06-01Fixed #34612 -- Fixed QuerySet.only() crash on reverse relationships.Simon Charette
Regression in b3db6c8dcb5145f7d45eff517bcd96460475c879. Thanks Ian Cubitt for the report. This also corrected test_inheritance_deferred2() test which was previously properly defined and marked as an expected failure but was then wrongly adjusted to mask the lack of support for per-alias deferral that was fixed by #21204.
2023-05-31Fixed #34606 -- Fixed Right() function with zero length on Oracle and SQLite.Kacper Wolkiewicz
2023-05-25Made MigrationRecorder cache has_table() result if django_migrations table ↵Tom Forbes
exists.
2023-05-24Fixed #34590 -- Reverted "Refs #33308 -- Improved adapting DecimalField ↵David Sanders
values to decimal." This reverts 7990d254b0af158baf827fafbd90fe8e890f23bd. Thanks Marc Odermatt for the report.
2023-05-23Fixed #34551 -- Fixed QuerySet.aggregate() crash when referencing subqueries.Simon Charette
Regression in 59bea9efd2768102fc9d3aedda469502c218e9b7. Refs #28477. Thanks Denis Roldán and Mariusz for the test.
2023-05-23Refs #34551 -- Fixed QuerySet.aggregate() crash on precending aggregation ↵Simon Charette
reference. Regression in 1297c0d0d76a708017fe196b61a0ab324df76954. Refs #31679.
2023-05-22Fixed #34580 -- Avoided unnecessary computation of selected expressions in ↵Simon Charette
SQLCompiler. Performance regression in 278881e37619278789942513916acafaa88d26f3. Co-authored-by: David Smith <smithdc@gmail.com>
2023-05-17Fixed #34570 -- Silenced noop deferral of many-to-many and GFK.Simon Charette
While deferring many-to-many and GFK has no effect, the previous implementation of QuerySet.defer() ignore them instead of crashing. Regression in b3db6c8dcb5145f7d45eff517bcd96460475c879. Thanks Paco Martínez for the report.
2023-05-16Fixed #34539 -- Restored get_prep_value() call when adapting JSONFields.Julie Rymer
Regression in 5c23d9f0c32f166c81ecb6f3f01d5077a6084318.
2023-05-12Fixed #470 -- Added support for database defaults on fields.Ian Foote
Special thanks to Hannes Ljungberg for finding multiple implementation gaps. Thanks also to Simon Charette, Adam Johnson, and Mariusz Felisiak for reviews.
2023-05-11Fixed #34558 -- Fixed QuerySet.bulk_create() crash with Now() on Oracle.Mariusz Felisiak
2023-05-10Fixed #34553 -- Fixed improper % escaping of literal in constraints.Simon Charette
Proper escaping of % in string literals used when defining constaints was attempted (a8b3f96f6) by overriding quote_value of Postgres and Oracle schema editor. The same approach was used when adding support for constraints to the MySQL/MariaDB backend (1fc2c70). Later on it was discovered that this approach was not appropriate and that a preferable one was to pass params=None when executing the constraint creation DDL to avoid any form of interpolation in the first place (42e8cf47). When the second patch was applied the corrective of the first were not removed which caused % literals to be unnecessary doubled. This flew under the radar because the existings test were crafted in a way that consecutive %% didn't catch regressions. This commit introduces an extra test for __exact lookups which highlights more adequately % doubling problems but also adjust a previous __endswith test to cover % doubling problems (%\% -> %%\%%). Thanks Thomas Kolar for the report. Refs #32369, #30408, #30593.
2023-05-10Fixed #34554 -- Fixed Reverse(Value(…)) crash on Oracle.Mariusz Felisiak
2023-05-10Removed obsolete docstring from Field.db_returning.Lily Foote
It's also supported on SQLite 3.35+ and MariaDB 10.5+.
2023-05-09Refs #34534 -- Reduced Add/RemoveConstraint and Add/RenameIndex operations ↵Akash Kumar Sen
when optimizing migrations.
2023-05-09Moved SQLite DatabaseSchemaEditor.add_field()'s comment to the correct line.Mariusz Felisiak
2023-05-08Fixed #34544 -- Avoided DBMS_LOB.SUBSTR() wrapping with IS NULL condition on ↵Mariusz Felisiak
Oracle. Regression in 09ffc5c1212d4ced58b708cbbf3dfbfb77b782ca. Thanks Michael Smith for the report. This also reverts commit 1e4da439556cdd69eb9f91e07f99cf77997e70d2.
2023-05-05Refs #27236 -- Made more cosmetic edits to Meta.index_together deprecation.Mariusz Felisiak
2023-05-03Fixed #34529, Refs #34525 -- Reduced index operations with ↵Mariusz Felisiak
Meta.indexes/index_together when optimizing migrations. This makes squashing migrations an available path for changing Meta.index_together, which is deprecated, to Meta.indexes. Follow up to f81032572107846922745b68d5b7191058fdd5f5.
2023-05-03Fixed #34523 -- Fixed TransactionManagementError in ↵Mariusz Felisiak
QuerySet.update_or_create() with MyISAM storage engine. QuerySet.update_or_create() uses nested atomic to handle possible integrity errors taking savepoints as way to mark back the connection as usable. Savepoints are not returned when uses_savepoints/can_release_savepoints feature flags are set to False. As a consequence, QuerySet.update_or_create() assumed the outer atomic block is tainted and raised TransactionManagementError. This commit partly reverts 331a460f8f2e4f447b68fba491464b68c9b21fd1. Thanks gatello-s for the report.
2023-05-03Fixed #34517 -- Avoided connection post_init signal to ImageField without ↵Orhan Hirsch
width/height fields.
2023-05-02Refs #31369 -- Improved hint message in NullBooleanField's deprecation warning.Paul Brown