diff options
| author | Simon Charette <charette.s@gmail.com> | 2025-10-08 18:20:57 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2025-10-11 19:03:27 +0200 |
| commit | 88ef9ea6c5840ea9925a3975cb1126651dff8b3d (patch) | |
| tree | 4f0a723ba2acac8f01051e0a2b0e9b32005fe0c9 /django | |
| parent | 713e9d8f53c20a785e766477fa5270575833193e (diff) | |
[5.2.x] Fixed #36646 -- Added compatibility for oracledb 3.4.0.
The Database.Binary, Date, and Timestamp attributes were changed from
aliases to bytes, datetime.date, and datetime.datetime to factory
functions in oracle/python-oracledb@869a887819cdac7fcd610f9d9d463ade49ea7
which made their usage inadequate for isinstance checks.
Thanks John Wagenleitner for the report and Natalia for the triage.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Backport of 315dbe675df338ae66c8fa43274a76ecbed7ef67 from main
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/backends/oracle/base.py | 2 | ||||
| -rw-r--r-- | django/db/backends/oracle/operations.py | 4 | ||||
| -rw-r--r-- | django/db/backends/oracle/utils.py | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 3b37c38f97..71089c1166 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -438,7 +438,7 @@ class OracleParam: param = 0 if hasattr(param, "bind_parameter"): self.force_bytes = param.bind_parameter(cursor) - elif isinstance(param, (Database.Binary, datetime.timedelta)): + elif isinstance(param, (bytes, datetime.timedelta)): self.force_bytes = param else: # To transmit to the database, we need Unicode if supported diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py index 59eecdba20..14c69a59ff 100644 --- a/django/db/backends/oracle/operations.py +++ b/django/db/backends/oracle/operations.py @@ -273,12 +273,12 @@ END; return value def convert_datefield_value(self, value, expression, connection): - if isinstance(value, Database.Timestamp): + if isinstance(value, datetime.datetime): value = value.date() return value def convert_timefield_value(self, value, expression, connection): - if isinstance(value, Database.Timestamp): + if isinstance(value, datetime.datetime): value = value.time() return value diff --git a/django/db/backends/oracle/utils.py b/django/db/backends/oracle/utils.py index 57d97b3f77..d69414240c 100644 --- a/django/db/backends/oracle/utils.py +++ b/django/db/backends/oracle/utils.py @@ -24,7 +24,7 @@ class InsertVar: "BooleanField": int, "FloatField": Database.DB_TYPE_BINARY_DOUBLE, "DateTimeField": Database.DB_TYPE_TIMESTAMP, - "DateField": Database.Date, + "DateField": datetime.date, "DecimalField": decimal.Decimal, } |
