| Age | Commit message (Collapse) | Author |
|
|
|
The previous logic was systematically attempting to retrieve last_insert_id
even for models without an AutoField primary key when they had a GeneratedField
on backends that can't return columns from INSERT.
The issue affected MySQL, SQLite < 3.35, and Oracle when the use_returning_into
option was disabled and could result in either crashes when the non-auto
primary key wasn't an IntegerField subclass or silent misassignment of bogus
insert ids (0 or the previous auto primary key insert value) to the first
defined generated field value.
|
|
This is not a properly supported feature yet and should be revisited by
refs #35957.
|
|
|
|
|
|
composite primary key with default values.
|
|
skips an update query on save.
This adds test coverage for logic change in 9fa4d07ce0729850661a31a6b37c6b48f13d2266.
|
|
bulk_create() update_fields.
|
|
|
|
Thanks to Bhuvnesh Sharma and Adam Johnson for mentoring this Google
Summer of Code 2024 project. Thanks to Sarah Boyce, David Smith, Jacob
Walls and Natalia Bidart for reviews.
|
|
|
|
when in list_display_links.
|
|
|
|
Thanks Jacob Walls for the report and test and Csirmaz Bendegúz for the review.
|
|
|
|
|
|
aggregates.
|
|
|
|
To use the simple `filename="..."` form, the value must conform to the
official grammar from RFC6266[^1]:
filename-parm = "filename" "=" value
value = <value, defined in [RFC2616], Section 3.6>
; token | quoted-string
The `quoted-string` definition comes from RFC 9110[^2]:
```
quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text
The backslash octet ("\") can be used as a single-octet quoting
mechanism within quoted-string and comment constructs. Recipients that
process the value of a quoted-string MUST handle a quoted-pair as if
it were replaced by the octet following the backslash.
quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
A sender SHOULD NOT generate a quoted-pair in a quoted-string except
where necessary to quote DQUOTE and backslash octets occurring within
that string.
```
That is, quoted strings are able to express horizontal tabs, space
characters, and everything in the range from 0x21 to 0x7e, expect for
0x22 (`"`) and 0x5C (`\`), which can still be expressed but must be
escaped with their own `\`.
We ignore the case of `obs-text`, which is defined as the range
0x80-0xFF, since its presence is there for permissive parsing of
accidental high-bit characters, and it should not be generated by
conforming implementations.
Transform this character range into a regex and apply it in addition
to the "is ASCII" check. This ensures that all simple filenames are
expressed in the simple format, and that all filenames with newlines
and other control characters are properly expressed with the
percent-encoded `filename*=...`form.
[^1]: https://datatracker.ietf.org/doc/html/rfc6266#section-4.1
[^2]: https://datatracker.ietf.org/doc/html/rfc9110#name-quoted-strings
|
|
Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
|
|
Aligns the argument with SQL standards already used in Window.order_by and
sets up for adding support to Aggregate.
|
|
sanity checks.
These checks are not backend-dependent.
|
|
This fixes the ignored exception in self._out.flush() from
django.core.management.base.OutputWrapper:
`ValueError: I/O operation on closed file.`
|
|
|
|
|
|
when using bcachefs.
PC_NAME_MAX on bcachefs is 512, which was greater than the file field max_length.
|
|
FilteredRelation.
|
|
|
|
|
|
|
|
ForeignKey/ForeignObject/ManyToManyField to CompositePrimaryKeys.
|
|
|
|
part of CompositePrimaryKey on SQLite.
|
|
The test failed with "NOT NULL constraint failed" rather than
"UNIQUE constraint failed: tenant_id, comment_id".
|
|
test on Python 3.14+.
https://github.com/python/cpython/commit/5a23994a3dbee43a0b08f5920032f60f38b63071
|
|
|
|
SingleObjectTemplateResponseMixin.get_template_names().
|
|
This feature flag useful with MongoDB: "Rounding to the nearest even
value supports more even distribution of rounded data than always
rounding up or down."
|
|
many-to-many field that had a prefetch.
|
|
In 53e674d5744faad61e52d8459c9198b2aa6f63dd, the count should only
have been lowered for the case when savepoint are supported.
|
|
|
|
field.
PostgreSQL versions 16.5 and above no longer permit the use
of a USING clause when changing the type of a generated column.
|
|
|
|
Meta.indexes/constraints/unique_together.
CompositePrimaryKeys are not supported in any of these options.
|
|
Urlizer was not properly encoding email addresses containing punctuation
in generated mailto links. Per RFC 6068, fixed by percent encoding
(urllib.parse.quote) the local and domain address parts.
|
|
While AlterUniqueTogether has been documented to be still allowed in historical
migrations for the foreseeable future it has been crashing since 2abf417c815c20
was merged because the latter removed support for Meta.index_together which the
migration framework uses to render models to perform schema changes.
CreateModel(options["unique_together"]) was also affected.
Refs #27236.
Co-authored-by: Simon Charette <charette.s@gmail.com>
|
|
This NotSupportedError was removed in 6375cee490725969b4f67b3c988ef01350c1ad6d
because it will never be reached due to the same exception raised by
Window.as_sql().
|
|
|
|
Test a domain that is valid under IDNA 2008 but not IDNA 2003. This
helps verify that the branch in URLValidator which calls punycode() is
not actually being used for IDNs. punycode() implements IDNA 2003, so
the domain would fail to validate if that branch were active for IDNs.
|
|
|