1
0
mirror of https://github.com/django/django.git synced 2025-04-14 12:24:36 +00:00

5544 Commits

Author SHA1 Message Date
Mariusz Felisiak
305757aec1
Applied Black's 2024 stable style.
https://github.com/psf/black/releases/tag/24.1.0
2024-01-26 12:45:07 +01:00
Hisham Mahmood
bbfbf0ab68
Refs #33517 -- Prevented __second lookup from returning fractional seconds on Oracle. 2024-01-23 09:09:24 +01:00
Salvo Polizzi
184d82d848
Fixed #35130 -- Doc'd django.db.close_old_connections().
This also adds close_db_connections() to the django.db.__all__.
2024-01-22 13:31:50 +01:00
Mariusz Felisiak
4879907223
Fixed #35127 -- Made Model.full_clean() ignore GeneratedFields.
Thanks Claude Paroz for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2024-01-19 08:55:50 +01:00
Amir Karimi
27a3eee721 Fixed #31700 -- Made makemigrations command display meaningful symbols for each operation. 2024-01-17 14:00:02 +01:00
Simon Charette
0fcee1676c Fixed #35111 -- Fixed compilation of DateField __in/__range rhs on SQLite and MySQL.
Also removed tests that ensured that adapt_(date)timefield backend
operations where able to deal with expressions when it's not the case
for any other adapt methods.
2024-01-16 08:34:14 +01:00
Aivars Kalvans
f92641a636 Fixed #28344 -- Allowed customizing queryset in Model.refresh_from_db()/arefresh_from_db().
The from_queryset parameter can be used to:
- use a custom Manager
- lock the row until the end of transaction
- select additional related objects
2024-01-15 10:55:14 +01:00
Mariusz Felisiak
f3d10546a8 Refs #35102 -- Optimized replace_expressions()/relabelling aliases by adding early return.
This avoids costly hashing.

Thanks Anthony Shaw for the report.

Co-Authored-By: Simon Charette <charette.s@gmail.com>
2024-01-15 05:56:38 +01:00
Simon Charette
d074c7530b Refs #35102 -- Optimized Expression.identity used for equality and hashing.
inspect.signature() is quite slow and produces the same object for each
instance of the same class as they share their __init__ method which
makes it a prime candidate for caching.

Thanks Anthony Shaw for the report.
2024-01-15 05:56:33 +01:00
Simon Charette
92d6cff6a2 Fixed #35028 -- Disabled server-side bindings for named cursors on psycopg >= 3.
While we provide a `cursor_factory` based on the value of the
`server_side_bindings` option to `psycopg.Connection` it is ignored by
the `cursor` method when `name` is specified for `QuerySet.iterator()`
usage and it causes the usage of `psycopg.ServerCursor` which performs
server-side bindings.

Since the ORM doesn't generates SQL that is suitable for server-side
bindings when dealing with parametrized expressions a specialized cursor
must be used to allow server-side cursors to be used with client-side
bindings.

Thanks Richard Ebeling for the report.

Thanks Florian Apolloner and Daniele Varrazzo for reviews.
2024-01-12 21:40:18 +01:00
Mariusz Felisiak
8d2c16252e
Fixed #34769 -- Fixed key transforms on Oracle 21c+.
Oracle 21c introduced support for primivites in JSON fields that
caused changes in handling them by JSON_QUERY/JSON_VALUE functions.
2024-01-10 21:00:42 +01:00
Salvo Polizzi
3915d4c70d Fixed #35060 -- Deprecated passing positional arguments to Model.save()/asave(). 2024-01-02 08:42:33 +01:00
Michael
e29d1870dd
Improved variable names in QuerySet.delete(). 2024-01-02 05:30:16 +01:00
Nick Pope
c72001644f Updated DatabaseFeatures.bare_select_suffix on Oracle 23c.
https://docs.oracle.com/en/database/oracle/oracle-database/23/nfcoa/application-development.html#GUID-4EB70EB9-4EE3-4FE2-99C4-86F7AAC60F12
2024-01-01 10:59:16 +01:00
Nick Pope
a816efe238 Supported native aggregation over INTERVALs on Oracle 23c.
https://docs.oracle.com/en/database/oracle/oracle-database/23/nfcoa/application-development.html#GUID-CE5F8EED-934D-458D-B81C-6C8D617F31A2
2024-01-01 10:53:00 +01:00
Nick Pope
39a00f39c5 Added note about SELECT index in GROUP BY on Oracle 23c.
As this isn't enabled by default and would be unsafe to enforce, just
add a comment to note that this has to stay disabled.

https://docs.oracle.com/en/database/oracle/oracle-database/23/nfcoa/application-development.html#GUID-EDDF041F-C10D-4334-838A-706227D7BFE0
2024-01-01 10:51:27 +01:00
Nick Pope
81ccf92f15
Used JSON_OBJECT database function on PostgreSQL 16+. 2023-12-31 09:07:19 +01:00
Nick Pope
94b6f101f7
Fixed #29049 -- Added slicing notation to F expressions.
Co-authored-by: Priyansh Saxena <askpriyansh@gmail.com>
Co-authored-by: Niclas Olofsson <n@niclasolofsson.se>
Co-authored-by: David Smith <smithdc@gmail.com>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Abhinav Yadav <abhinav.sny.2002@gmail.com>
2023-12-30 08:24:30 +01:00
Simon Charette
e16d0c176e Fixed #35064 -- Fixed Window(order_by) crash with DecimalFields on SQLite.
This avoids cast of Window(order_by) for DecimalFields on SQLite.

This was achieved by piggy-backing ExpressionList which already
implements a specialized as_sqlite() method to override the inherited
behaviour of Func through SQLiteNumericMixin.

Refs #31723.

Thanks Quoates for the report.
2023-12-29 09:07:31 +01:00
David Wobrock
14917c9ae2 Fixed #35050 -- Fixed prefixing field names in FilteredRelation().
Thanks Mark Zorn for the report.

Regression in 59f475470494ce5b8cbff816b1e5dafcbd10a3a3.
2023-12-23 17:35:13 +01:00
David Wobrock
7045661069 Fixed #35022 -- Fixed RenameIndex() crash on unnamed indexes if exists unique constraint on the same fields. 2023-12-22 12:47:17 +01:00
Mariusz Felisiak
6c08dba517
Fixed #35054 -- Fixed crash on Oracle when fetching JSONFields with oracledb 2.0.0. 2023-12-22 09:43:45 +01:00
Simon Charette
77278929c8 Fixed #35042 -- Fixed a count() crash on combined queries.
Regression in 59bea9efd2768102fc9d3aedda469502c218e9b7.

Thanks Marcin for the report.
2023-12-16 20:19:24 +01:00
Tobias Krönke
d6c868a184 Fixed #35000 -- Skipped declaring empty string defaults on BLOB/TEXT field on MySQL.
Empty string defaults are redundant on MySQL and prevent use of
ALGORITHM=INSTANT.
2023-12-14 10:59:25 +01:00
Simon Charette
b0ad41198b Fixed #34013 -- Added QuerySet.order_by() support for annotation transforms.
Thanks Eugene Morozov and Ben Nace for the reports.
2023-12-12 05:51:33 +01:00
Mariusz Felisiak
fcf95e5927
Fixed #35018 -- Fixed migrations crash on GeneratedField with BooleanField as output_field on Oracle < 23c.
Thanks Václav Řehák for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2023-12-12 05:39:11 +01:00
Sarah Boyce
b287af5dc9 Fixed #35019 -- Fixed save() on models with both GeneratedFields and ForeignKeys.
Thanks Deb Kumar Das for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2023-12-08 09:46:11 +01:00
Mariusz Felisiak
5b3b791e90
Fixed #35024 -- Fixed model instance creation crash on GeneratedField.output_field with backend converters.
Regression in d9de74141e8a920940f1b91ed0a3ccb835b55729.

This is a long standing issue, however it caused a crash of
GeneratedFields for all output fields that have backend-specific
converters when the RETURNING clause is not supported
(MySQL and SQLite < 3.35).
That's why severity was exacerbated.
2023-12-07 20:50:18 +01:00
Mariusz Felisiak
00ef74376e
Replaced deprecated database type synonyms in Oracle backend. 2023-12-06 13:51:54 +01:00
Peter Thomassen
54cb1a7e16 Fixed #35002 -- Made UniqueConstraints with fields respect nulls_distinct.
Regression in 595a2abb58e04caa4d55fb2589bb80fb2a8fdfa1.
2023-12-03 12:30:45 +01:00
Mariusz Felisiak
37fc832a54
Fixed #35006 -- Fixed migrations crash when altering Meta.db_table_comment on SQLite.
Thanks Юрий for the report.

Regression in 78f163a4fb3937aca2e71786fbdd51a0ef39629e.
2023-11-30 10:10:27 +01:00
Nick Pope
5f9e5c1b0d Refs #34822, Refs #34986 -- Fixed migrations serializer support for functools.lru_cache().
It turns out that `functools._lru_cache_wrapper` is only a class when
CPython's _functools C module provides it, otherwise it is a function.
PyPy also provides it as a function.
2023-11-28 13:47:35 +01:00
Aman Pandey
0fcd72bc48 Fixed #34633 -- Made create() method of reverse many-to-one managers clear prefetch_related() cache. 2023-11-28 05:46:04 +01:00
Nathaniel Conroy
0257426fe1 Fixed #34992 -- Fixed DatabaseFeatures.allows_group_by_selected_pks on MariaDB with ONLY_FULL_GROUP_BY sql mode.
Regression in 041551d716b69ee7c81199eee86a2d10a72e15ab.
2023-11-27 09:20:10 +01:00
Simon Charette
978680db22
Refs #34925 -- Avoided altering passed by reference refresh_from_db(fields).
Follow up to b0ec87b8578147be4357c90eabcd2b916c780810.
2023-11-25 17:01:14 +01:00
trontelj
b0ec87b857 Fixed #34925 -- Prevented Model.refresh_from_db() from mutating list of fields. 2023-11-24 13:42:40 +01:00
Nick Pope
5e28cd3f2c
Fixed #34983 -- Deprecated django.utils.itercompat.is_iterable(). 2023-11-24 12:06:29 +01:00
Parth Verma
eabfa2d0e3
Fixed #34818 -- Prevented GenericIPAddressField from mutating error messages.
Co-authored-by: Parth Verma <parth.verma@gmail.com>
2023-11-24 05:46:17 +01:00
Prashant Pandey
a8adb6aa6c Fixed #26827 -- Improved ModelState error message when relations refer model classes. 2023-11-23 21:17:44 +01:00
Simon Charette
e76cc93b01
Fixed #34987 -- Fixed queryset crash when mixing aggregate and window annotations.
Regression in f387d024fc75569d2a4a338bfda76cc2f328f627.

Just like `OrderByList` the `ExpressionList` expression used to wrap
`Window.partition_by` must implement `get_group_by_cols` to ensure the
necessary grouping when mixing window expressions with aggregate
annotations is performed against the partition members and not the
partition expression itself.

This is necessary because while `partition_by` is implemented as
a source expression of `Window` it's actually a fragment of the WINDOW
expression at the SQL level and thus it should result in a group by its
members and not the sum of them.

Thanks ElRoberto538 for the report.
2023-11-23 06:09:08 +01:00
Mariusz Felisiak
101a85a5a0
Fixed #34985 -- Fixed GeneratedFields.contribute_to_class() crash when apps are not populated.
Thanks Paolo Melchiorre for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2023-11-22 13:41:32 +01:00
Sarah Boyce
828082dad9 Fixed #34984 -- Skipped GeneratedFields when remaking tables on SQLite.
Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.t

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: David Sanders <shang.xiao.sanders@gmail.com>
2023-11-22 12:29:14 +01:00
Mariusz Felisiak
7dd3e694db
Fixed #34980 -- Changed migration operation dependencies to namedtuples. 2023-11-21 10:22:32 +01:00
Simon Charette
911b1619ab Refs #34975 -- Handled optional source expressions in Expression.get_refs().
While no code is directly exercising get_refs in a way that triggers
a crash some expressions such as Window stash None in source_expressions
which can obscure the origin of some bugs.

Handling None values like we do in other source_expression traversing
methods such as .contains_aggregates ensures we don't run into surprises
in the future where get_refs() might be used for a different purpose.
2023-11-18 15:41:59 +01:00
Simon Charette
d7a9f006ed Refs #34717 -- Avoided computing aggregate refs twice. 2023-11-18 15:41:25 +01:00
Simon Charette
15cb3c262a Refs #34975 -- Complemented rhs filtering aggregations for __in lookup.
While this isn't a regression it's clear that similar logic should be
applied when dealing with lists of expressions passed as a lookup value.
2023-11-18 15:40:52 +01:00
Simon Charette
7530cf3900 Fixed #34975 -- Fixed crash of conditional aggregate() over aggregations.
Adjustments made to solve_lookup_type to defer the resolving of
references for summarized aggregates failed to account for similar
requirements for lookup values which can also reference annotations
through Aggregate.filter.

Regression in b181cae2e3697b2e53b5b67ac67e59f3b05a6f0d.

Refs #25307.

Thanks Sergey Nesterenko for the report.
2023-11-18 15:38:04 +01:00
Mariusz Felisiak
c705625ebf Refs #34944 -- Propagated system checks for GeneratedField.output_field. 2023-11-14 20:22:07 +01:00
Mariusz Felisiak
5875f03ce6 Fixed #34944 -- Made GeneratedField.output_field required.
Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2023-11-14 20:22:07 +01:00
Mariusz Felisiak
de4884b114 Reverted "Refs #30446, Refs #34944 -- Fixed crash when adding GeneratedField with string Value()."
This reverts commit 8b1acc0440418ac8f45ba48e2dfcf5126c83341b.
2023-11-14 15:45:43 +01:00