Skip to content

Commit 00daabb

Browse files
committed
add decimals
1 parent d08f471 commit 00daabb

File tree

5 files changed

+12
-2
lines changed

5 files changed

+12
-2
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
setup(
2222
name='clickhouse-sqlalchemy',
23-
version='0.0.3.7',
23+
version='0.0.3.8',
2424

2525
description='Simple ClickHouse SQLAlchemy Dialect',
2626
long_description=long_description,

src/drivers/base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,9 @@ def visit_enum16(self, type_, **kw):
330330
def visit_DATETIME(self, type_, **kw):
331331
return 'DateTime'
332332

333+
def visit_numeric(self, type_, **kw):
334+
return 'Decimal(%s, %s)' % (type_.precision, type_.scale)
335+
333336

334337
class ClickHouseExecutionContextBase(default.DefaultExecutionContext):
335338
@sa_util.memoized_property

src/drivers/escaper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,4 @@ def escape_item(self, item):
7575
if isinstance(item, (list, tuple)):
7676
return [self.escape_item(x) for x in item]
7777
else:
78-
raise Exception("Unsupported object {}".format(item))
78+
raise Exception("Unsupported object {} ({})".format(item, type(item)))

src/drivers/http/transport.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import datetime
22
from functools import partial
3+
from decimal import Decimal
34

45
import pytz
56

@@ -71,6 +72,8 @@ def execute(self, query, params=None):
7172
convs.append(self.converters[type_])
7273
elif type_.startswith("DateTime("): # datetime with timezone
7374
convs.append(partial(self.converters['DateTime'], tz=type_[10:-2]))
75+
elif type_.startswith("Decimal"):
76+
convs.append(Decimal)
7477
else:
7578
convs.append(None)
7679

src/types.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,7 @@ def __init__(self, *enums, **kw):
8383

8484
class Enum16(Enum8):
8585
__visit_name__ = 'enum16'
86+
87+
88+
class Decimal(types.Numeric):
89+
__visit_name__ = 'numeric'

0 commit comments

Comments
 (0)