Skip to content

Commit d362497

Browse files
authored
add support for boolean aggregates (#332)
1 parent 5170b77 commit d362497

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

mssql/functions.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,16 @@
3232
class TryCast(Cast):
3333
function = 'TRY_CAST'
3434

35+
def sqlserver_cast(self, compiler, connection, **extra_context):
36+
if hasattr(self.source_expressions[0], 'lookup_name'):
37+
if self.source_expressions[0].lookup_name in ['gt', 'gte', 'lt', 'lte']:
38+
return self.as_sql(
39+
compiler, connection,
40+
template = 'CASE WHEN %(expressions)s THEN 1 ELSE 0 END',
41+
**extra_context
42+
)
43+
return self.as_sql(compiler, connection, **extra_context)
44+
3545

3646
def sqlserver_atan2(self, compiler, connection, **extra_context):
3747
return self.as_sql(compiler, connection, function='ATN2', **extra_context)
@@ -451,6 +461,7 @@ def sqlserver_sha512(self, compiler, connection, **extra_context):
451461
key_transform_exact_process_rhs = KeyTransformExact.process_rhs
452462
KeyTransformExact.process_rhs = json_KeyTransformExact_process_rhs
453463
HasKeyLookup.as_microsoft = json_HasKeyLookup
464+
Cast.as_microsoft = sqlserver_cast
454465
Degrees.as_microsoft = sqlserver_degrees
455466
Radians.as_microsoft = sqlserver_radians
456467
Power.as_microsoft = sqlserver_power

0 commit comments

Comments
 (0)