summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2017-12-20 17:05:27 +0100
committerTim Graham <timograham@gmail.com>2017-12-20 11:05:27 -0500
commitfc9eec7bb7d5e3e6426bb612277bfcecb943e8ac (patch)
tree3d0efaff4edba61d2541f43dd4a8a0f723ba3814
parenta7a36bb4d8ef7f03c2df9e3279c8f488ab3641d1 (diff)
Fixed #28934 -- Prevented Cast from truncating microseconds on Oracle.
-rw-r--r--django/db/backends/oracle/base.py2
-rw-r--r--tests/db_functions/test_cast.py5
2 files changed, 3 insertions, 4 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index 74bad39214..45c3c4e475 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -350,6 +350,8 @@ class OracleParam:
elif string_size > 4000:
# Mark any string param greater than 4000 characters as a CLOB.
self.input_size = Database.CLOB
+ elif isinstance(param, datetime.datetime):
+ self.input_size = Database.TIMESTAMP
else:
self.input_size = None
diff --git a/tests/db_functions/test_cast.py b/tests/db_functions/test_cast.py
index 6a6db9016d..42bbce118e 100644
--- a/tests/db_functions/test_cast.py
+++ b/tests/db_functions/test_cast.py
@@ -1,6 +1,6 @@
import datetime
-from django.db import connection, models
+from django.db import models
from django.db.models.expressions import Value
from django.db.models.functions import Cast
from django.test import TestCase, ignore_warnings, skipUnlessDBFeature
@@ -51,9 +51,6 @@ class CastTests(TestCase):
def test_cast_from_python_to_datetime(self):
now = datetime.datetime.now()
- if connection.vendor == 'oracle':
- # Workaround until #28934 is fixed.
- now = now.replace(microsecond=0)
dates = Author.objects.annotate(cast_datetime=Cast(now, models.DateTimeField()))
self.assertEqual(dates.get().cast_datetime, now)