From 98728ee0deb7e787223aad0ace633c0ea69c3954 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Mon, 1 Dec 2014 15:13:36 +0200 Subject: [PATCH] Add doc block --- sqlalchemy_utils/aggregates.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sqlalchemy_utils/aggregates.py b/sqlalchemy_utils/aggregates.py index 340887f..6e7ed2a 100644 --- a/sqlalchemy_utils/aggregates.py +++ b/sqlalchemy_utils/aggregates.py @@ -402,6 +402,22 @@ class AggregatedAttribute(declared_attr): def get_aggregate_query(agg_expr, relationships): + """ + Return a subquery for fetching an aggregate value of given aggregate + expression and given sequence of relationships. + + The returned aggregate query can be used when updating denormalized column + value with query such as: + + UPDATE table SET column = {aggregate_query} + WHERE {condition} + + :param agg_expr: + an expression to be selected, for example sa.func.count('1') + :param relationships: + Sequence of relationships to be used for building the aggregate + query. + """ from_ = relationships[0].mapper.class_.__table__ for relationship in relationships[0:-1]: property_ = relationship.property