| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-03-24 | Refs #36494 -- Prevented crash in JSONField numeric lookups with expressions. | Vignesh Anand | |
| 2026-03-16 | Fixed #36906 -- Handled coalescing JSON-primitive strings and JSON values on ↵ | Kanin Kearpimy | |
| Oracle. | |||
| 2025-12-22 | Fixed #36508 -- Interpreted __iexact=None on KeyTransforms as __exact=None. | Clifford Gama | |
| Thanks Jacob Walls for the report. | |||
| 2025-12-22 | Replaced per-object create() calls with bulk_create in ↵ | Clifford Gama | |
| tests/model_fields/test_jsonfield.py | |||
| 2025-12-10 | Refs #36025 -- Made get_prep_lookup() pass output_field when wrapping direct ↵ | Clifford Gama | |
| values in Value. Previously, only strings were supplied with an output_field when wrapping direct value iterable elements in Value expressions for ExpressionList. This caused problems for __in lookups on JSONField when using expressions alongside direct values, as JSONField values can have different types which need to be adapted by the field's get_db_prep_value(). Refs #36689. Thanks Jacob Walls for the review. | |||
| 2025-12-10 | Refs #36689 -- Serialized JSONIn rhs parameters wrapped in Value expressions. | Clifford Gama | |
| 2025-12-10 | Fixed #36689 -- Fixed top-level JSONField __in lookup failures on MySQL and ↵ | Clifford Gama | |
| Oracle. Added a JSONIn lookup to handle correct serialization and extraction for JSONField top-level __in queries on backends without native JSON support. KeyTransformIn now subclasses JSONIn. Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com> Thanks Jacob Walls for the report and review. | |||
| 2025-11-12 | Refs #35381 -- Made JSONNull deconstruct using convenient import path. | Clifford Gama | |
| 2025-10-29 | Refs #35381 -- Deprecated using None in JSONExact rhs to mean JSON null. | Clifford Gama | |
| Key and index lookups are exempt from the deprecation. Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com> | |||
| 2025-10-29 | Fixed #35381 -- Added JSONNull() expression. | Clifford Gama | |
| Thanks Jacob Walls for the review. | |||
| 2025-09-22 | Fixed #36612 -- Fixed a KeyTextTransform crash on MySQL against annotations. | Simon Charette | |
| MySQL only supports the ->> when used directly against columns, this can be inferred by the presence of lhs.output_field.model as model bounds fields are directly tied to columns. Purposely don't systematically switch to using JSON_QUOTE(JSON_EXTRACT(...)) as there might be functional indices out there that rely on the SQL remaining stable between versions. Thanks Jacob Tavener for the report. | |||
| 2025-05-14 | Fixed #36085 -- Added JSONField support for negative array indexing on SQLite. | savanto | |
| 2025-02-27 | Refs #35617 -- Removed hardcoded pk in test_bulk_update_custom_get_prep_value(). | Jacob Walls | |
| 2025-02-20 | Refs #35167 -- Fixed test_bulk_update_custom_get_prep_value() crash on ↵ | Mariusz Felisiak | |
| databases that don't support primitives in JSONFields. For example on Oracle < 21c. | |||
| 2025-02-18 | Fixed #35167 -- Delegated to super() in JSONField.get_db_prep_save(). | Jacob Walls | |
| Avoids reports of bulk_update() sending Cast expressions to JSONField.get_prep_value(). Co-authored-by: Simon Charette <charette.s@gmail.com> | |||
| 2025-02-06 | Fixed #36025 -- Fixed re-aliasing of iterable (in/range) lookups rhs. | Simon Charette | |
| In order for Expression.relabeled_clone to work appropriately its get_source_expressions method must return all resolvable which wasn't the case for Lookup when its right-hand-side is "direct" (not a compilable). While refs #22288 added support for non-literals iterable right-hand-side lookups it predated the subclassing of Lookup(Expression) refs #27021 which could have been an opportunity to ensure right-hand-sides are always resolvable (ValueList and ExpressionList). Addressing all edge case with non-resolvable right-hand-sides would require a significant refactor and deprecation of some parts of the Lookup interface so this patch only focuses on FieldGetDbPrepValueIterableMixin (In and Range lookups) by making sure that a right-hand-side containing resolvables are dealt with appropriately during the resolving phase. Thanks Aashay Amballi for the report. | |||
| 2024-12-04 | Fixed CVE-2024-53908 -- Prevented SQL injections in direct HasKeyLookup ↵ | Simon Charette | |
| usage on Oracle. Thanks Seokchan Yoon for the report, and Mariusz Felisiak and Sarah Boyce for the reviews. | |||
| 2024-12-03 | Refs #35842 -- Fixed handling of quotes in JSONField key lookups on Oracle. | Sage Abdullah | |
| 2024-02-16 | Refs #34060 -- Fixed crash when filtering against literal JSON with psycopg2. | Simon Charette | |
| 2023-09-22 | Fixed JSONField's test_deep_distinct for ↵ | Tim Graham | |
| DatabaseFeatures.nulls_order_largest=False. Failure observed on CockroachDB. | |||
| 2023-09-18 | Refs #33308 -- Removed support for passing encoded JSON string literals to ↵ | Mariusz Felisiak | |
| JSONField & co. Per deprecation timeline. | |||
| 2023-05-16 | Fixed #34539 -- Restored get_prep_value() call when adapting JSONFields. | Julie Rymer | |
| Regression in 5c23d9f0c32f166c81ecb6f3f01d5077a6084318. | |||
| 2022-12-15 | Fixed #33308 -- Added support for psycopg version 3. | Daniele Varrazzo | |
| Thanks Simon Charette, Tim Graham, and Adam Johnson for reviews. Co-authored-by: Florian Apolloner <florian@apolloner.eu> Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2022-12-01 | Refs #33308 -- Deprecated support for passing encoded JSON string literals ↵ | Simon Charette | |
| to JSONField & co. JSON should be provided as literal Python objects an not in their encoded string literal forms. | |||
| 2022-10-08 | Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to ↵ | Gregor Gärtner | |
| assertQuerySetEqual(). Co-Authored-By: Michael Howitz <mh@gocept.com> | |||
| 2022-09-16 | Fixed #33966 -- Added support for using KeyTextTransform from lookup. | Allen Jonathan David | |
| 2022-08-18 | Refs #26511 -- Fixed json.KeyTextTransform() on MySQL/MariaDB. | Mariusz Felisiak | |
| 2022-04-14 | Relaxed some query ordering assertions in various tests. | Mariusz Felisiak | |
| It accounts for differences seen on MySQL with MyISAM storage engine. | |||
| 2022-04-12 | Fixed #33626 -- Cleared cache when unregistering a lookup. | Himanshu-Balasamanta | |
| 2022-03-15 | Fixed #33552 -- Fixed JSONField has key lookups with numeric keys on ↵ | Sage Abdullah | |
| MariaDB, MySQL, Oracle, and SQLite. | |||
| 2022-02-07 | Refs #33476 -- Reformatted code with Black. | django-bot | |
| 2022-02-03 | Refs #33476 -- Refactored problematic code before reformatting by Black. | Mariusz Felisiak | |
| In these cases Black produces unexpected results, e.g. def make_random_password( self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyz' 'ABCDEFGHJKLMNPQRSTUVWXYZ' '23456789', ): or cursor.execute(""" SELECT ... """, [table name], ) | |||
| 2021-03-23 | Fixed #32483 -- Fixed QuerySet.values()/values_list() on JSONField key ↵ | Mariusz Felisiak | |
| transforms with booleans on SQLite. Thanks Matthew Cornell for the report. | |||
| 2021-03-23 | Refs #32483 -- Added tests QuerySet.values()/values_list() on key transforms ↵ | Mariusz Felisiak | |
| with structures containing booleans. | |||
| 2021-03-23 | Refs #31936 -- Added tests for __in lookup on JSONField key transforms with ↵ | Mariusz Felisiak | |
| booleans. | |||
| 2021-02-05 | Fixed #32411 -- Fixed __icontains lookup for JSONField on MySQL. | Hasan Ramezani | |
| 2020-12-11 | Fixed #32252 -- Fixed __isnull=True on key transforms on SQLite and Oracle. | sage | |
| __isnull=True on key transforms should not match keys with NULL values. | |||
| 2020-12-10 | Fixed #32178 -- Allowed database backends to skip tests and mark expected ↵ | Hasan Ramezani | |
| failures. Co-authored-by: Tim Graham <timograham@gmail.com> | |||
| 2020-11-27 | Fixed #25534, Fixed #31639 -- Added support for transform references in ↵ | Ian Foote | |
| expressions. Thanks Mariusz Felisiak and Simon Charette for reviews. | |||
| 2020-11-25 | Fixed #32203 -- Fixed QuerySet.values()/values_list() crash on key ↵ | sage | |
| transforms with non-string values on SQLite. Thanks Gordon Wrigley for the report. | |||
| 2020-11-25 | Refs #32203 -- Added tests for QuerySet.values()/values_list() on key ↵ | sage | |
| transforms with non-trivial values. | |||
| 2020-11-24 | Added test for filtering JSONField key transforms with quoted strings. | Mariusz Felisiak | |
| 2020-11-10 | Fixed #32182 -- Fixed crash of JSONField nested key transforms with subquery ↵ | Hannes Ljungberg | |
| annotations on PostgreSQL. | |||
| 2020-10-22 | Replaced @no_oracle skips with DatabaseFeatures.allows_group_by_lob. | Tim Graham | |
| 2020-10-14 | Refs #32096 -- Fixed ExpressionWrapper crash with JSONField key transforms. | Mariusz Felisiak | |
| Regression in 6789ded0a6ab797f0dcdfa6ad5d1cfa46e23abcd. Thanks Simon Charette and Igor Jerosimić for the report. | |||
| 2020-10-14 | Refs #32096 -- Fixed __in lookup crash against key transforms for JSONField. | Mariusz Felisiak | |
| Regression in 6789ded0a6ab797f0dcdfa6ad5d1cfa46e23abcd and 1251772cb83aa4106f526fe00738e51c0eb59122. Thanks Simon Charette and Igor Jerosimić for the report. | |||
| 2020-09-04 | Refs #31894 -- Added tests for JSONField key lookups with QuerySet.exclude(). | jpribyl | |
| 2020-08-28 | Fixed #31956 -- Fixed crash of ordering by JSONField with a custom decoder ↵ | Mariusz Felisiak | |
| on PostgreSQL. Thanks Marc Debureaux for the report. Thanks Simon Charette, Nick Pope, and Adam Johnson for reviews. | |||
| 2020-08-28 | Refs #31956 -- Added test for ordering by JSONField with a custom decoder. | Mariusz Felisiak | |
| 2020-08-26 | Fixed #31936 -- Fixed __in lookup on key transforms for JSONField. | Mariusz Felisiak | |
| This resolves an issue on databases without a native JSONField (MariaDB, MySQL, SQLite, Oracle), where values must be wrapped. Thanks Sébastien Pattyn for the report. | |||
