diff options
| author | Albert Defler <alnw@interia.eu> | 2024-02-17 12:22:53 +0000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-02-19 08:28:42 +0100 |
| commit | 26aae5614487f58ddb1df5726224393887373ecd (patch) | |
| tree | 75679c920ec9c53174b9c23eb3ad658dd12d735d | |
| parent | f25d84f61a039d538bc742861f36579c704a310b (diff) | |
Refs #34060 -- Fixed JSONField __exact lookup for primitivies on Oracle 21c+.
Regression in c991602ce5798385261381025c06698d7fd30dc5.
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
| -rw-r--r-- | django/db/models/fields/json.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/models/fields/json.py b/django/db/models/fields/json.py index 5a9c02e032..1b219e620c 100644 --- a/django/db/models/fields/json.py +++ b/django/db/models/fields/json.py @@ -313,7 +313,10 @@ class JSONExact(lookups.Exact): def as_oracle(self, compiler, connection): lhs, lhs_params = self.process_lhs(compiler, connection) rhs, rhs_params = self.process_rhs(compiler, connection) - return f"JSON_EQUAL({lhs}, {rhs})", (*lhs_params, *rhs_params) + if connection.features.supports_primitives_in_json_field: + lhs = f"JSON({lhs})" + rhs = f"JSON({rhs})" + return f"JSON_EQUAL({lhs}, {rhs} ERROR ON ERROR)", (*lhs_params, *rhs_params) class JSONIContains(CaseInsensitiveMixin, lookups.IContains): |
