Skip to content

Commit 1d78f64

Browse files
authored
django: fix modulo operator
fixes #332
1 parent 975b2e0 commit 1d78f64

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

‎packages/django-google-spanner/django_spanner/features.py‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,6 @@ class DatabaseFeatures(BaseDatabaseFeatures):
198198
# https://github.com/orijtech/django-spanner/issues/331
199199
'expressions.tests.ExpressionOperatorTests.test_lefthand_division',
200200
'expressions.tests.ExpressionOperatorTests.test_right_hand_division',
201-
# modulo operator doesn't work:
202-
# https://github.com/orijtech/django-spanner/issues/332
203-
'expressions.tests.ExpressionOperatorTests.test_lefthand_modulo',
204-
'expressions.tests.ExpressionOperatorTests.test_right_hand_modulo',
205201
# power operator doesn't work:
206202
# https://github.com/orijtech/django-spanner/issues/333
207203
'expressions.tests.ExpressionOperatorTests.test_lefthand_power',

‎packages/django-google-spanner/django_spanner/operations.py‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ def date_interval_sql(self, timedelta):
211211
def format_for_duration_arithmetic(self, sql):
212212
return 'INTERVAL %s MICROSECOND' % sql
213213

214+
def combine_expression(self, connector, sub_expressions):
215+
if connector == '%%':
216+
return 'MOD(%s)' % ', '.join(sub_expressions)
217+
return super().combine_expression(connector, sub_expressions)
218+
214219
def combine_duration_expression(self, connector, sub_expressions):
215220
if connector == '+':
216221
return 'TIMESTAMP_ADD(' + ', '.join(sub_expressions) + ')'

0 commit comments

Comments
 (0)