<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/tests/constraints/tests.py, branch main</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=main</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2026-04-22T21:28:35Z</updated>
<entry>
<title>Fixed #37057 -- Adjusted UniqueConstraint handling of UNKNOWN condition.</title>
<updated>2026-04-22T21:28:35Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2026-04-22T15:46:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=61a62be313e395ce1265132bfc99f51476fb3c95'/>
<id>urn:sha1:61a62be313e395ce1265132bfc99f51476fb3c95</id>
<content type='text'>
When we adjusted UNKNOWN handling for CheckConstraint in refs #33996 we assumed
that all usage of Q.check would benefit from this approach.

However while CHECK constraints enforcement do ignore conditions involving NULL
that resolve to UNKNOWN it's not the case for other type of constraints such as
UNIQUE ones.

Given how UNKNOWN should be treated depends on the callers context it appears
that a better strategy for COALESCE wrapping is to force them to apply it if
necessary.

Thanks Drew Shapiro for the report.
</content>
</entry>
<entry>
<title>Fixed #36808 -- Required name argument in UniqueConstraint signature.</title>
<updated>2025-12-19T14:48:15Z</updated>
<author>
<name>Jonathan Biemond</name>
<email>jonbiemond@gmail.com</email>
</author>
<published>2025-12-18T13:43:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=b172cbdf33c3eaea6a5c4a53da2ed0e46306a625'/>
<id>urn:sha1:b172cbdf33c3eaea6a5c4a53da2ed0e46306a625</id>
<content type='text'>
By trading ValueError for TypeError for omitted name arguments,
we gain a little clarity.
</content>
</entry>
<entry>
<title>Fixed #34871, #36518 -- Implemented unresolved lookups expression replacement.</title>
<updated>2025-08-04T07:22:53Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-02-19T08:04:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=079d31e698fa08dd92e2bc4f3fe9b4817a214419'/>
<id>urn:sha1:079d31e698fa08dd92e2bc4f3fe9b4817a214419</id>
<content type='text'>
This allows the proper resolving of lookups when performing constraint
validation involving Q and Case objects.

Thanks Andrew Roberts for the report and Sarah for the tests and review.
</content>
</entry>
<entry>
<title>Fixed #36433 -- Fixed constraint validation crash when condition uses a ForeignKey attname.</title>
<updated>2025-06-13T06:50:25Z</updated>
<author>
<name>Colleen Dunlap</name>
<email>colleendunlap@Colleens-Air.lan</email>
</author>
<published>2025-06-06T20:02:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=830e69a868fa7713b6b690fa2e71e8a98f4639d8'/>
<id>urn:sha1:830e69a868fa7713b6b690fa2e71e8a98f4639d8</id>
<content type='text'>
Regression in e44e8327d3d88d86895735c0e427102063ff5b55.

Thank you to Jacob Walls for the report.

Co-authored-by: Simon Charette &lt;charette.s@gmail.com&gt;
</content>
</entry>
<entry>
<title>Fixed #36198 -- Implemented unresolved transform expression replacement.</title>
<updated>2025-03-01T18:57:53Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-02-18T17:43:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=fc303551077c3e023fe4f9d01fc1b3026c816fa4'/>
<id>urn:sha1:fc303551077c3e023fe4f9d01fc1b3026c816fa4</id>
<content type='text'>
This allows the proper resolving of F("field__transform") when
performing constraint validation.

Thanks Tom Hall for the report and Sarah for the test.
</content>
</entry>
<entry>
<title>Refs #35234 -- Removed CheckConstraint.check per deprecation timeline.</title>
<updated>2025-01-15T21:28:37Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2024-12-13T08:30:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=85750bd2f8ed7e595aac25c7e5fd7218528a25b1'/>
<id>urn:sha1:85750bd2f8ed7e595aac25c7e5fd7218528a25b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #34355 -- Removed support for positional arguments in BaseConstraint per deprecation timeline.</title>
<updated>2025-01-15T21:28:37Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2024-12-12T15:32:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=b5a6c93a180e2c213e42f30a30bf63548a248957'/>
<id>urn:sha1:b5a6c93a180e2c213e42f30a30bf63548a248957</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #35103 -- Used provided error code and message when fields is set without a condition on UniqueConstraint.</title>
<updated>2024-10-10T07:20:37Z</updated>
<author>
<name>gabn88</name>
<email>gerben_m88@hotmail.com</email>
</author>
<published>2024-01-11T16:43:52Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=e970bb7ca71c00594b42a024a15a8ac007cc2c7a'/>
<id>urn:sha1:e970bb7ca71c00594b42a024a15a8ac007cc2c7a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly.</title>
<updated>2024-08-28T14:44:05Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2024-08-09T17:03:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=57307bbc7d88927989cf5b314f16d6e13ade04e6'/>
<id>urn:sha1:57307bbc7d88927989cf5b314f16d6e13ade04e6</id>
<content type='text'>
Over the years we've had multiple instances of hit and misses when
emitting warnings: either setting the wrong stacklevel or not setting
it at all.

This work adds assertions for the existing warnings that were declaring
the correct stacklevel, but were lacking tests for it.
</content>
</entry>
<entry>
<title>Fixed #35575 -- Added support for constraint validation on GeneratedFields.</title>
<updated>2024-08-12T11:45:57Z</updated>
<author>
<name>Mark Gensler</name>
<email>mark.gensler@protonmail.com</email>
</author>
<published>2024-07-18T07:38:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=228128618bd895ecad235d2215f4ad4e3232595d'/>
<id>urn:sha1:228128618bd895ecad235d2215f4ad4e3232595d</id>
<content type='text'>
</content>
</entry>
</feed>
