From 32c77ab1903c139fd28586ad3aa93be756018a8a Mon Sep 17 00:00:00 2001 From: Itai Shirav Date: Sun, 19 Aug 2018 16:18:15 +0300 Subject: [PATCH] Include alias and materialized fields in queryset results --- CHANGELOG.md | 4 ++++ src/infi/clickhouse_orm/query.py | 2 +- tests/test_querysets.py | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 745a284..7236d18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ Change Log ========== +Unreleased +---------- +- Include alias and materialized fields in queryset results + v1.0.1 ------ - NullableField: take extra_null_values into account in `validate` and `to_python` diff --git a/src/infi/clickhouse_orm/query.py b/src/infi/clickhouse_orm/query.py index 4e079e5..1c4ab38 100644 --- a/src/infi/clickhouse_orm/query.py +++ b/src/infi/clickhouse_orm/query.py @@ -237,7 +237,7 @@ class QuerySet(object): self._database = database self._order_by = [] self._q = [] - self._fields = [] + self._fields = model_cls.fields().keys() self._limits = None self._distinct = False diff --git a/tests/test_querysets.py b/tests/test_querysets.py index 4176341..8cbe9c3 100644 --- a/tests/test_querysets.py +++ b/tests/test_querysets.py @@ -220,6 +220,18 @@ class QuerySetTestCase(TestCaseWithData): self._test_qs(qs, 100) self._test_qs(qs.only('first_name'), 94) + def test_materialized_field(self): + self._insert_sample_model() + qs = SampleModel.objects_in(self.database) + for obj in qs: + self.assertTrue(obj.materialized_date != DateField.min_value) + + def test_alias_field(self): + self._insert_sample_model() + qs = SampleModel.objects_in(self.database) + for obj in qs: + self.assertTrue(obj.num_squared == obj.num ** 2) + class AggregateTestCase(TestCaseWithData): @@ -358,6 +370,7 @@ class SampleModel(Model): materialized_date = DateField(materialized='toDate(timestamp)') num = Int32Field() color = Enum8Field(Color) + num_squared = Int32Field(alias='num*num') engine = MergeTree('materialized_date', ('materialized_date',))