mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2025-08-02 11:10:11 +03:00
Merge c1f14b4dad
into 45a9200ff6
This commit is contained in:
commit
89bb8cd0e0
|
@ -135,6 +135,19 @@ class CollapsingMergeTree(MergeTree):
|
|||
return params
|
||||
|
||||
|
||||
class AggregatingMergeTree(MergeTree):
|
||||
|
||||
def __init__(self, date_col=None, order_by=(), sampling_expr=None,
|
||||
index_granularity=8192, replica_table_path=None, replica_name=None, partition_key=None,
|
||||
primary_key=None):
|
||||
super(AggregatingMergeTree, self).__init__(date_col, order_by, sampling_expr, index_granularity,
|
||||
replica_table_path, replica_name, partition_key, primary_key)
|
||||
|
||||
def _build_sql_params(self, db):
|
||||
params = super(AggregatingMergeTree, self)._build_sql_params(db)
|
||||
return params
|
||||
|
||||
|
||||
class SummingMergeTree(MergeTree):
|
||||
|
||||
def __init__(self, date_col=None, order_by=(), summing_cols=None, sampling_expr=None,
|
||||
|
|
|
@ -538,10 +538,10 @@ class QuerySet(object):
|
|||
def final(self):
|
||||
"""
|
||||
Adds a FINAL modifier to table, meaning data will be collapsed to final version.
|
||||
Can be used with the `CollapsingMergeTree` and `ReplacingMergeTree` engines only.
|
||||
Can be used with the `CollapsingMergeTree`, `ReplacingMergeTree` and `AggregatingMergeTree` engines only.
|
||||
"""
|
||||
from .engines import CollapsingMergeTree, ReplacingMergeTree
|
||||
if not isinstance(self._model_cls.engine, (CollapsingMergeTree, ReplacingMergeTree)):
|
||||
from .engines import CollapsingMergeTree, ReplacingMergeTree, AggregatingMergeTree
|
||||
if not isinstance(self._model_cls.engine, (CollapsingMergeTree, ReplacingMergeTree, AggregatingMergeTree)):
|
||||
raise TypeError('final() method can be used only with the CollapsingMergeTree and ReplacingMergeTree engines')
|
||||
|
||||
qs = copy(self)
|
||||
|
|
|
@ -73,6 +73,11 @@ class EnginesTestCase(_EnginesHelperTestCase):
|
|||
engine = ReplacingMergeTree('date', ('date', 'event_id', 'event_group'), 'event_uversion')
|
||||
self._create_and_insert(TestModel)
|
||||
|
||||
def test_aggregating_merge_tree(self):
|
||||
class TestModel(SampleModel):
|
||||
engine = AggregatingMergeTree('date', ('date', 'event_group'))
|
||||
self._create_and_insert(TestModel)
|
||||
|
||||
def test_tiny_log(self):
|
||||
class TestModel(SampleModel):
|
||||
engine = TinyLog()
|
||||
|
|
Loading…
Reference in New Issue
Block a user