From 3434dbd39d373df7193ad006b970c09c1a909ea3 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Wed, 2 Aug 2023 20:47:49 -0400 Subject: Fixed #34754 -- Fixed JSONField check constraints validation on NULL values. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The __isnull lookup of JSONField must special case Value(None, JSONField()) left-hand-side in order to be coherent with its convoluted null handling. Since psycopg>=3 offers no way to pass a NULL::jsonb the issue is resolved by optimizing IsNull(Value(None), True | False) to True | False. Regression in 5c23d9f0c32f166c81ecb6f3f01d5077a6084318. Thanks Alexandre Collet for the report. --- docs/releases/4.2.5.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/releases/4.2.5.txt b/docs/releases/4.2.5.txt index a4e2471158..23ba728da5 100644 --- a/docs/releases/4.2.5.txt +++ b/docs/releases/4.2.5.txt @@ -9,4 +9,6 @@ Django 4.2.5 fixes several bugs in 4.2.4. Bugfixes ======== -* ... +* Fixed a regression in Django 4.2 that caused an incorrect validation of + ``CheckConstraints`` on ``__isnull`` lookups against ``JSONField`` + (:ticket:`34754`). -- cgit v1.3