Skip to content

Commit 3c06f88

Browse files
committed
django: implement DatabaseOperations.date_interval_sql()
fixes #184
1 parent 0507331 commit 3c06f88

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

spanner/django/features.py

-3
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,6 @@ class DatabaseFeatures(BaseDatabaseFeatures):
6161
# https://github.com/orijtech/spanner-orm/issues/155
6262
'timezones.tests.LegacyDatabaseTests.test_raw_sql',
6363
'timezones.tests.NewDatabaseTests.test_raw_sql',
64-
# implement DatabaseOperations.date_interval_sql()
65-
# https://github.com/orijtech/spanner-orm/issues/184
66-
'timezones.tests.NewDatabaseTests.test_update_with_timedelta',
6764
# Unable to infer type for parameter:
6865
# https://github.com/orijtech/spanner-orm/issues/185
6966
'timezones.tests.LegacyDatabaseTests.test_cursor_execute_returns_naive_datetime',

spanner/django/operations.py

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from django.db.backends.base.operations import BaseDatabaseOperations
99
from django.db.utils import DatabaseError
1010
from django.utils import timezone
11+
from django.utils.duration import duration_microseconds
1112
from spanner.dbapi.parse_utils import DateStr, TimestampStr, escape_name
1213

1314

@@ -174,6 +175,9 @@ def datetime_trunc_sql(self, lookup_type, field_name, tzname):
174175
sql = 'TIMESTAMP_ADD(' + sql + ', INTERVAL 1 DAY)'
175176
return sql
176177

178+
def date_interval_sql(self, timedelta):
179+
return 'INTERVAL %s MICROSECOND' % duration_microseconds(timedelta)
180+
177181
def format_for_duration_arithmetic(self, sql):
178182
return 'INTERVAL %s MICROSECOND' % sql
179183

0 commit comments

Comments
 (0)