summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2025-10-08 18:20:57 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2025-10-11 17:15:28 +0200
commit315dbe675df338ae66c8fa43274a76ecbed7ef67 (patch)
treef57a30a3687b0d88ca1462ce4aea09ff70993e62 /django
parent1167cd1d639c3fee69dbdef351d31e8a17d1fedf (diff)
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>
Diffstat (limited to 'django')
-rw-r--r--django/db/backends/oracle/base.py2
-rw-r--r--django/db/backends/oracle/operations.py4
-rw-r--r--django/db/backends/oracle/utils.py2
3 files changed, 4 insertions, 4 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index bf79f7a6e3..48fa01ebee 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -433,7 +433,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 e5da5928f9..1da4fe6127 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 fd7deab9a2..bd167528da 100644
--- a/django/db/backends/oracle/utils.py
+++ b/django/db/backends/oracle/utils.py
@@ -24,7 +24,7 @@ class BoundVar:
"BooleanField": int,
"FloatField": Database.DB_TYPE_BINARY_DOUBLE,
"DateTimeField": Database.DB_TYPE_TIMESTAMP,
- "DateField": Database.Date,
+ "DateField": datetime.date,
"DecimalField": decimal.Decimal,
}