1
0
mirror of https://github.com/django/django.git synced 2025-03-14 11:20:46 +00:00

5581 Commits

Author SHA1 Message Date
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
Simon Charette
6364b6ee10 Fixed #34955 -- Made Concat() use || operator on PostgreSQL.
This also avoids casting string based expressions in Concat() on
PostgreSQL.
2023-11-14 10:56:20 +01:00
David Sanders
b863c5ffde Fixed #34967 -- Fixed queryset crash when grouping by constants on SQLite < 3.39.
On SQLite < 3.39, this forces a GROUP BY clause with a HAVING clause
when no grouping is specified.

Co-authored-by: Simon Charette <charette.s@gmail.com>
2023-11-13 12:01:40 +01:00
Simon Charette
8b1acc0440 Refs #30446, Refs #34944 -- Fixed crash when adding GeneratedField with string Value().
This should allow smarter output_field inferring in functions dealing
with text expressions.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2023-11-08 15:48:15 +03:00
Simon Charette
8a28e983df
Fixed #34946 -- Preserved db_default on combined default field addition.
Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3.
2023-11-07 13:32:34 +03:00
Mariusz Felisiak
656192c2c9
Fixed #34941 -- Fixed fetching decimal db_defaults for DecimalFields on Oracle.
This is a long standing bug in bc91f27a86090b4c688b56cd4e37f95eebe6e969
that began manifesting in 7414704e88d73dafbcfbb85f9bc54cb6111439d3.
2023-11-03 16:28:04 +01:00
Mariusz Felisiak
7a09ba0962
Refs #34941 -- Skipped OperationTests.test_alter_field_change_nullable_to_decimal_database_default_not_null on Oracle. 2023-11-03 05:29:06 +01:00
David Sanders
797957fb48 Fixed #34936 -- Fixed migration crash for DecimalField with db_default on SQLite.
CAST() must be wrapped in parentheses to be recognized as an expression on SQLite.

Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3.
2023-11-02 17:57:39 +01:00
Tim Graham
208870b612 Refs #31300 -- Allowed testing GeneratedField without collation.
CockroachDB and Snowflake don't support it.
2023-11-02 13:58:46 +01:00
Sarah Boyce
e4d012ca05 Refs #29850 -- Added exclusion support to window frames. 2023-10-30 12:04:55 +01:00
Tom Carrick
34b411762b Fixed #34932 -- Restored varchar_pattern_ops/text_pattern_ops index creation when deterministic collaction is set.
Regression in f3f9d03edf17ccfa17263c7efa0b1350d1ac9278 (4.2) and
8ed25d65ea7546fafd808086fa07e7e5bb5428fc (5.0).
2023-10-30 07:37:40 +01:00
Sarah Boyce
6375cee490 Refs #29850 -- Added RowRange support for positive integer start and negative integer end. 2023-10-28 15:16:07 +02:00
Nick Pope
171f91d9ef Fixed #34899 -- Added blank choice to forms' callable choices lazily. 2023-10-23 13:44:23 -03:00
Nick Pope
74afcee234 Refs #34899 -- Extracted Field.flatchoices to flatten_choices helper function.
Co-authored-by: Natalia Bidart <124304+nessita@users.noreply.github.com>
2023-10-23 13:44:23 -03:00