﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32252	Using __isnull=True on a KeyTransform should not match JSON null on SQLite and Oracle	Sage Abdullah	Sage Abdullah	"The `KeyTransformIsNull` lookup borrows the logic from `HasKey` for `isnull=False`, which is correct. If `isnull=True`, the query should only match objects that do not have the key. The query is correct for MariaDB, MySQL, and PostgreSQL. However, on SQLite and Oracle, the query also matches objects that have the key with the value `null`, which is incorrect.

To confirm, edit `tests.model_fields.test_jsonfield.TestQuerying.test_isnull_key`. For the first assertion, change

{{{
        self.assertSequenceEqual(
            NullableJSONModel.objects.filter(value__a__isnull=True),
            self.objs[:3] + self.objs[5:],
        )
}}}

to

{{{
        self.assertSequenceEqual(
            NullableJSONModel.objects.filter(value__j__isnull=True),
            self.objs[:4] + self.objs[5:],
        )
}}}

The test previously only checks with `value__a` which could not catch this behavior because the value is not JSON `null`."	Bug	closed	Database layer (models, ORM)	3.1	Release blocker	fixed			Ready for checkin	1	0	0	0	0	0
