Clifford Gama
6ee8e9d56c
Fixed #36508 -- Interpreted __iexact=None on KeyTransforms as __exact=None.
...
Thanks Jacob Walls for the report.
2025-12-22 14:20:07 -05:00
Clifford Gama
9cc5c87ffb
Replaced per-object create() calls with bulk_create in tests/model_fields/test_jsonfield.py
2025-12-22 14:20:07 -05:00
Clifford Gama
7b54ddd5e6
Refs #36025 -- Made get_prep_lookup() pass output_field when wrapping direct 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 17:45:51 -05:00
Clifford Gama
9b8e4c6d7d
Refs #36689 -- Serialized JSONIn rhs parameters wrapped in Value expressions.
2025-12-10 17:45:51 -05:00
Clifford Gama
66fed37ecb
Fixed #36689 -- Fixed top-level JSONField __in lookup failures on MySQL and 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-12-10 17:45:51 -05:00
Clifford Gama
66b5a6de78
Refs #35381 -- Made JSONNull deconstruct using convenient import path.
2025-11-12 17:14:52 -05:00
Clifford Gama
348ca84538
Refs #35381 -- Deprecated using None in JSONExact rhs to mean JSON null.
...
Key and index lookups are exempt from the deprecation.
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com >
2025-10-29 15:00:52 -04:00
Clifford Gama
adc25a9a66
Fixed #35381 -- Added JSONNull() expression.
...
Thanks Jacob Walls for the review.
2025-10-29 15:00:52 -04:00
Simon Charette
af84cfba59
Fixed #36612 -- Fixed a KeyTextTransform crash on MySQL against annotations.
...
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-09-22 09:00:24 +02:00
savanto
8620a3b0c7
Fixed #36085 -- Added JSONField support for negative array indexing on SQLite.
2025-05-14 13:21:18 +02:00
Jacob Walls
77666f2fa1
Refs #35617 -- Removed hardcoded pk in test_bulk_update_custom_get_prep_value().
2025-02-27 09:42:08 +01:00
Mariusz Felisiak
7500044a82
Refs #35167 -- Fixed test_bulk_update_custom_get_prep_value() crash on databases that don't support primitives in JSONFields.
...
For example on Oracle < 21c.
2025-02-20 08:14:18 +01:00
Jacob Walls
0bf412111b
Fixed #35167 -- Delegated to super() in JSONField.get_db_prep_save().
...
Avoids reports of bulk_update() sending Cast expressions
to JSONField.get_prep_value().
Co-authored-by: Simon Charette <charette.s@gmail.com >
2025-02-18 17:28:24 +01:00
Simon Charette
089deb82b9
Fixed #36025 -- Fixed re-aliasing of iterable (in/range) lookups rhs.
...
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.
2025-02-06 16:57:44 +01:00
Simon Charette
8f8dc5a1fc
Fixed CVE-2024-53908 -- Prevented SQL injections in direct HasKeyLookup usage on Oracle.
...
Thanks Seokchan Yoon for the report, and Mariusz Felisiak and Sarah
Boyce for the reviews.
2024-12-04 13:43:13 +01:00
Sage Abdullah
b28438f379
Refs #35842 -- Fixed handling of quotes in JSONField key lookups on Oracle.
2024-12-03 11:19:55 +01:00
Simon Charette
0d8fbe2ade
Refs #34060 -- Fixed crash when filtering against literal JSON with psycopg2.
2024-02-16 07:40:33 +01:00
Tim Graham
b0788a0918
Fixed JSONField's test_deep_distinct for DatabaseFeatures.nulls_order_largest=False.
...
Failure observed on CockroachDB.
2023-09-22 06:25:17 +02:00
Mariusz Felisiak
5e4c1793b7
Refs #33308 -- Removed support for passing encoded JSON string literals to JSONField & co.
...
Per deprecation timeline.
2023-09-18 22:12:40 +02:00
Julie Rymer
0ec60661e6
Fixed #34539 -- Restored get_prep_value() call when adapting JSONFields.
...
Regression in 5c23d9f0c3 .
2023-05-16 08:26:41 +02:00
Daniele Varrazzo
09ffc5c121
Fixed #33308 -- Added support for psycopg version 3.
...
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-15 06:17:57 +01:00
Simon Charette
0ff46591ac
Refs #33308 -- Deprecated support for passing encoded JSON string literals to JSONField & co.
...
JSON should be provided as literal Python objects an not in their
encoded string literal forms.
2022-12-01 19:14:00 +01:00
Gregor Gärtner
f0c06f8ab7
Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual().
...
Co-Authored-By: Michael Howitz <mh@gocept.com >
2022-10-08 08:07:38 +02:00
Allen Jonathan David
10178197d5
Fixed #33966 -- Added support for using KeyTextTransform from lookup.
2022-09-16 05:36:57 +02:00
Mariusz Felisiak
e9fd2b5724
Refs #26511 -- Fixed json.KeyTextTransform() on MySQL/MariaDB.
2022-08-18 21:02:29 +02:00
Mariusz Felisiak
1760ad4e8c
Relaxed some query ordering assertions in various tests.
...
It accounts for differences seen on MySQL with MyISAM storage engine.
2022-04-14 12:12:13 +02:00
Himanshu-Balasamanta
06ebaa9e28
Fixed #33626 -- Cleared cache when unregistering a lookup.
2022-04-12 06:24:02 +02:00
Sage Abdullah
a88fab1bca
Fixed #33552 -- Fixed JSONField has key lookups with numeric keys on MariaDB, MySQL, Oracle, and SQLite.
2022-03-15 06:37:35 +01:00
django-bot
9c19aff7c7
Refs #33476 -- Reformatted code with Black.
2022-02-07 20:37:05 +01:00
Mariusz Felisiak
c5cd878382
Refs #33476 -- Refactored problematic code before reformatting by Black.
...
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],
)
2022-02-03 11:20:46 +01:00
Mariusz Felisiak
71ec102b01
Fixed #32483 -- Fixed QuerySet.values()/values_list() on JSONField key transforms with booleans on SQLite.
...
Thanks Matthew Cornell for the report.
2021-03-23 08:28:47 +01:00
Mariusz Felisiak
c4df8b86c7
Refs #32483 -- Added tests QuerySet.values()/values_list() on key transforms with structures containing booleans.
2021-03-23 08:27:14 +01:00
Mariusz Felisiak
037607ff19
Refs #31936 -- Added tests for __in lookup on JSONField key transforms with booleans.
2021-03-23 08:27:14 +01:00
Hasan Ramezani
63d239db03
Fixed #32411 -- Fixed __icontains lookup for JSONField on MySQL.
2021-02-05 16:14:12 +01:00
sage
8d7085e0fd
Fixed #32252 -- Fixed __isnull=True on key transforms on SQLite and Oracle.
...
__isnull=True on key transforms should not match keys with NULL values.
2020-12-11 09:15:42 +01:00
Hasan Ramezani
275dd4ebba
Fixed #32178 -- Allowed database backends to skip tests and mark expected failures.
...
Co-authored-by: Tim Graham <timograham@gmail.com >
2020-12-10 18:00:57 +01:00
Ian Foote
8b040e3cbb
Fixed #25534 , Fixed #31639 -- Added support for transform references in expressions.
...
Thanks Mariusz Felisiak and Simon Charette for reviews.
2020-11-27 20:42:04 +01:00
sage
fe6e582421
Fixed #32203 -- Fixed QuerySet.values()/values_list() crash on key transforms with non-string values on SQLite.
...
Thanks Gordon Wrigley for the report.
2020-11-25 14:51:35 +01:00
sage
7408c4cd15
Refs #32203 -- Added tests for QuerySet.values()/values_list() on key transforms with non-trivial values.
2020-11-25 13:48:11 +01:00
Mariusz Felisiak
bec415b290
Added test for filtering JSONField key transforms with quoted strings.
2020-11-24 18:11:19 +01:00
Hannes Ljungberg
0773837e15
Fixed #32182 -- Fixed crash of JSONField nested key transforms with subquery annotations on PostgreSQL.
2020-11-10 07:09:58 +01:00
Tim Graham
755dbf39fc
Replaced @no_oracle skips with DatabaseFeatures.allows_group_by_lob.
2020-10-22 18:16:58 +02:00
Mariusz Felisiak
bbd55e5863
Refs #32096 -- Fixed ExpressionWrapper crash with JSONField key transforms.
...
Regression in 6789ded0a6 .
Thanks Simon Charette and Igor Jerosimić for the report.
2020-10-14 20:56:04 +02:00
Mariusz Felisiak
7e1e198494
Refs #32096 -- Fixed __in lookup crash against key transforms for JSONField.
...
Regression in 6789ded0a6 and
1251772cb8 .
Thanks Simon Charette and Igor Jerosimić for the report.
2020-10-14 20:56:04 +02:00
jpribyl
94e2238107
Refs #31894 -- Added tests for JSONField key lookups with QuerySet.exclude().
2020-09-04 09:04:24 +02:00
Mariusz Felisiak
0be51d2226
Fixed #31956 -- Fixed crash of ordering by JSONField with a custom decoder on PostgreSQL.
...
Thanks Marc Debureaux for the report.
Thanks Simon Charette, Nick Pope, and Adam Johnson for reviews.
2020-08-28 19:09:46 +02:00
Mariusz Felisiak
2210539142
Refs #31956 -- Added test for ordering by JSONField with a custom decoder.
2020-08-28 19:09:41 +02:00
Mariusz Felisiak
1251772cb8
Fixed #31936 -- Fixed __in lookup on key transforms for JSONField.
...
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.
2020-08-26 22:13:37 +02:00
Tim Graham
184a6eebb0
Refs #31829 -- Added DatabaseFeatures.json_key_contains_list_matching_requires_list.
...
CockroachDB's behavior matches PostgreSQL.
2020-07-30 06:38:02 +02:00
sage
2d8dcba03a
Fixed #31829 -- Used JSONField __contains lookup on key transforms.
2020-07-28 13:10:12 +02:00