mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2024-11-21 16:46:33 +03:00
Support FINAL for ReplacingMergeTree
This commit is contained in:
parent
3d12bdb556
commit
f35333a7b6
|
@ -5,6 +5,7 @@ Unreleased
|
|||
----------
|
||||
- Support for model constraints
|
||||
- Support for data skipping indexes
|
||||
- Support FINAL for `ReplacingMergeTree` (chripede)
|
||||
- Added `DateTime64Field` (NiyazNz)
|
||||
- Make `DateTimeField` and `DateTime64Field` timezone-aware (NiyazNz)
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ The `field_names` list must match the fields defined in the model, but does not
|
|||
|
||||
- `line`: the TSV-formatted data.
|
||||
- `field_names`: names of the model fields in the data.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes. Some fields use their own timezones.
|
||||
- `database`: if given, sets the database that this instance belongs to.
|
||||
|
||||
|
||||
|
@ -333,7 +333,7 @@ The `field_names` list must match the fields defined in the model, but does not
|
|||
|
||||
- `line`: the TSV-formatted data.
|
||||
- `field_names`: names of the model fields in the data.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes. Some fields use their own timezones.
|
||||
- `database`: if given, sets the database that this instance belongs to.
|
||||
|
||||
|
||||
|
@ -468,7 +468,7 @@ The `field_names` list must match the fields defined in the model, but does not
|
|||
|
||||
- `line`: the TSV-formatted data.
|
||||
- `field_names`: names of the model fields in the data.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes. Some fields use their own timezones.
|
||||
- `database`: if given, sets the database that this instance belongs to.
|
||||
|
||||
|
||||
|
@ -634,7 +634,7 @@ The `field_names` list must match the fields defined in the model, but does not
|
|||
|
||||
- `line`: the TSV-formatted data.
|
||||
- `field_names`: names of the model fields in the data.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes.
|
||||
- `timezone_in_use`: the timezone to use when parsing dates and datetimes. Some fields use their own timezones.
|
||||
- `database`: if given, sets the database that this instance belongs to.
|
||||
|
||||
|
||||
|
@ -858,6 +858,13 @@ Extends Field
|
|||
#### DateField(default=None, alias=None, materialized=None, readonly=None, codec=None)
|
||||
|
||||
|
||||
### DateTime64Field
|
||||
|
||||
Extends DateTimeField
|
||||
|
||||
#### DateTime64Field(default=None, alias=None, materialized=None, readonly=None, codec=None, timezone=None, precision=6)
|
||||
|
||||
|
||||
### DateTimeField
|
||||
|
||||
Extends Field
|
||||
|
@ -865,13 +872,6 @@ Extends Field
|
|||
#### DateTimeField(default=None, alias=None, materialized=None, readonly=None, codec=None, timezone=None)
|
||||
|
||||
|
||||
### DateTime64Field
|
||||
|
||||
Extends DateTimeField
|
||||
|
||||
#### DateTime64Field(default=None, alias=None, materialized=None, readonly=None, codec=None, precision=6, timezone=None)
|
||||
|
||||
|
||||
### Decimal128Field
|
||||
|
||||
Extends DecimalField
|
||||
|
@ -1217,7 +1217,7 @@ Pass `prewhere=True` to apply the conditions as PREWHERE instead of WHERE.
|
|||
|
||||
|
||||
Adds a FINAL modifier to table, meaning data will be collapsed to final version.
|
||||
Can be used with `CollapsingMergeTree` engine only.
|
||||
Can be used with the `CollapsingMergeTree` and `ReplacingMergeTree` engines only.
|
||||
|
||||
|
||||
#### limit_by(offset_limit, *fields_or_expr)
|
||||
|
@ -1340,7 +1340,7 @@ Pass `prewhere=True` to apply the conditions as PREWHERE instead of WHERE.
|
|||
|
||||
|
||||
Adds a FINAL modifier to table, meaning data will be collapsed to final version.
|
||||
Can be used with `CollapsingMergeTree` engine only.
|
||||
Can be used with the `CollapsingMergeTree` and `ReplacingMergeTree` engines only.
|
||||
|
||||
|
||||
#### group_by(*args)
|
||||
|
@ -2744,6 +2744,15 @@ Initializer.
|
|||
#### toDateTime(**kwargs)
|
||||
|
||||
|
||||
#### toDateTime64(**kwargs)
|
||||
|
||||
|
||||
#### toDateTime64OrNull(precision, timezone=NO_VALUE)
|
||||
|
||||
|
||||
#### toDateTime64OrZero(precision, timezone=NO_VALUE)
|
||||
|
||||
|
||||
#### toDateTimeOrNull()
|
||||
|
||||
|
||||
|
|
|
@ -93,8 +93,8 @@
|
|||
* [BaseFloatField](class_reference.md#basefloatfield)
|
||||
* [BaseIntField](class_reference.md#baseintfield)
|
||||
* [DateField](class_reference.md#datefield)
|
||||
* [DateTimeField](class_reference.md#datetimefield)
|
||||
* [DateTime64Field](class_reference.md#datetime64field)
|
||||
* [DateTimeField](class_reference.md#datetimefield)
|
||||
* [Decimal128Field](class_reference.md#decimal128field)
|
||||
* [Decimal32Field](class_reference.md#decimal32field)
|
||||
* [Decimal64Field](class_reference.md#decimal64field)
|
||||
|
|
|
@ -3,7 +3,6 @@ from __future__ import unicode_literals
|
|||
import pytz
|
||||
from copy import copy, deepcopy
|
||||
from math import ceil
|
||||
from .engines import CollapsingMergeTree, ReplacingMergeTree
|
||||
from datetime import date, datetime
|
||||
from .utils import comma_join, string_or_func
|
||||
|
||||
|
@ -538,8 +537,9 @@ class QuerySet(object):
|
|||
def final(self):
|
||||
"""
|
||||
Adds a FINAL modifier to table, meaning data will be collapsed to final version.
|
||||
Can be used with `CollapsingMergeTree` engine only.
|
||||
Can be used with the `CollapsingMergeTree` and `ReplacingMergeTree` engines only.
|
||||
"""
|
||||
from .engines import CollapsingMergeTree, ReplacingMergeTree
|
||||
if not isinstance(self._model_cls.engine, (CollapsingMergeTree, ReplacingMergeTree)):
|
||||
raise TypeError('final() method can be used only with the CollapsingMergeTree and ReplacingMergeTree engines')
|
||||
|
||||
|
|
|
@ -287,7 +287,7 @@ class QuerySetTestCase(TestCaseWithData):
|
|||
self._test_qs(qs[80:], 20)
|
||||
|
||||
def test_final(self):
|
||||
# Final can be used with CollapsingMergeTree engine only
|
||||
# Final can be used with CollapsingMergeTree/ReplacingMergeTree engines only
|
||||
with self.assertRaises(TypeError):
|
||||
Person.objects_in(self.database).final()
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user