Skip to content

Commit aa41421

Browse files
committed
Support for SAMPLE BY in schemas
1 parent 3c72d7d commit aa41421

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

clickhouse_backend/backend/schema.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,13 +254,16 @@ def _model_extra_sql(self, model, engine):
254254
order_by = engine.order_by
255255
partition_by = engine.partition_by
256256
primary_key = engine.primary_key
257+
sample_by = engine.sample_by
257258

258259
if order_by is not None:
259260
yield "ORDER BY (%s)" % self._get_expression(model, *order_by)
260261
if partition_by:
261262
yield "PARTITION BY (%s)" % self._get_expression(model, *partition_by)
262263
if primary_key is not None:
263264
yield "PRIMARY KEY (%s)" % self._get_expression(model, *primary_key)
265+
if sample_by is not None:
266+
yield "SAMPLE BY (%s)" % self._get_expression(model, *sample_by)
264267
if engine.settings:
265268
result = []
266269
for setting, value in engine.settings.items():

clickhouse_backend/models/engines.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ def __init__(
128128
order_by=None,
129129
partition_by=None,
130130
primary_key=None,
131+
sample_by=None,
131132
**settings,
132133
):
133134
assert (
@@ -136,8 +137,9 @@ def __init__(
136137
self.order_by = order_by
137138
self.primary_key = primary_key
138139
self.partition_by = partition_by
140+
self.sample_by = sample_by
139141

140-
for key in ["order_by", "primary_key", "partition_by"]:
142+
for key in ["order_by", "primary_key", "partition_by", "sample_by"]:
141143
value = getattr(self, key)
142144
if value is not None:
143145
if isinstance(value, str) or not isinstance(value, Iterable):

0 commit comments

Comments
 (0)