]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
renamed aggregatefilter to funcfilter, since it is that
authorIlja Everilä <saarni@gmail.com>
Thu, 11 Sep 2014 12:29:33 +0000 (15:29 +0300)
committerIlja Everilä <saarni@gmail.com>
Thu, 11 Sep 2014 12:29:33 +0000 (15:29 +0300)
lib/sqlalchemy/__init__.py
lib/sqlalchemy/sql/__init__.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/expression.py
lib/sqlalchemy/sql/functions.py
test/sql/test_compiler.py
test/sql/test_generative.py

index 1af0de3ba365d6d22919fade38e5acf5e7794c72..d184e1fbf5bdce4f7d4db39681cd905df2a4c69a 100644 (file)
@@ -7,7 +7,6 @@
 
 
 from .sql import (
-    aggregatefilter,
     alias,
     and_,
     asc,
@@ -26,6 +25,7 @@ from .sql import (
     extract,
     false,
     func,
+    funcfilter,
     insert,
     intersect,
     intersect_all,
index 8fbf1b536c5aa7d6c065c501ff09de3bc2fe7402..351e08d0b81656c2fdf569bcc5cbd12275b32f2d 100644 (file)
@@ -19,7 +19,6 @@ from .expression import (
     Selectable,
     TableClause,
     Update,
-    aggregatefilter,
     alias,
     and_,
     asc,
@@ -39,6 +38,7 @@ from .expression import (
     false,
     False_,
     func,
+    funcfilter,
     insert,
     intersect,
     intersect_all,
index 6ebd61e9c8b07329bb6d4e65878289123300522c..d59012d12b75e1ca1a1a60195f077934a6c03430 100644 (file)
@@ -760,10 +760,10 @@ class SQLCompiler(Compiled):
             )
         )
 
-    def visit_aggregatefilter(self, aggregatefilter, **kwargs):
+    def visit_funcfilter(self, funcfilter, **kwargs):
         return "%s FILTER (WHERE %s)" % (
-            aggregatefilter.func._compiler_dispatch(self, **kwargs),
-            aggregatefilter.criterion._compiler_dispatch(self, **kwargs)
+            funcfilter.func._compiler_dispatch(self, **kwargs),
+            funcfilter.criterion._compiler_dispatch(self, **kwargs)
         )
 
     def visit_extract(self, extract, **kwargs):
index 5562e80d7b6cd3944e5096c9261fcf95dbe99819..5ac16ab7ad645166c960b41acf64b504d34bbab0 100644 (file)
@@ -2888,28 +2888,28 @@ class Over(ColumnElement):
         ))
 
 
-class AggregateFilter(ColumnElement):
-    """Represent an aggregate FILTER clause.
+class FunctionFilter(ColumnElement):
+    """Represent a function FILTER clause.
 
-    This is a special operator against aggregate functions,
+    This is a special operator against aggregate and window functions,
     which controls which rows are passed to it.
     It's supported only by certain database backends.
 
     """
-    __visit_name__ = 'aggregatefilter'
+    __visit_name__ = 'funcfilter'
 
     criterion = None
 
     def __init__(self, func, *criterion):
-        """Produce an :class:`.AggregateFilter` object against a function.
+        """Produce an :class:`.FunctionFilter` object against a function.
 
-        Used against aggregate functions,
-        for database backends that support aggregate "FILTER" clause.
+        Used against aggregate and window functions,
+        for database backends that support the "FILTER" clause.
 
         E.g.::
 
-        from sqlalchemy import aggregatefilter
-        aggregatefilter(func.count(1), MyClass.name == 'some name')
+        from sqlalchemy import funcfilter
+        funcfilter(func.count(1), MyClass.name == 'some name')
 
         Would produce "COUNT(1) FILTER (WHERE myclass.name = 'some name')".
 
index 7b22cab3e7212433955ee57348d7e3852aca446e..2e10b737062b27b548c90557c28c3950ecd9df5d 100644 (file)
@@ -36,7 +36,7 @@ from .elements import ClauseElement, ColumnElement,\
     True_, False_, BinaryExpression, Tuple, TypeClause, Extract, \
     Grouping, not_, \
     collate, literal_column, between,\
-    literal, outparam, type_coerce, ClauseList, AggregateFilter
+    literal, outparam, type_coerce, ClauseList, FunctionFilter
 
 from .elements import SavepointClause, RollbackToSavepointClause, \
     ReleaseSavepointClause
@@ -97,8 +97,8 @@ outerjoin = public_factory(Join._create_outerjoin, ".expression.outerjoin")
 insert = public_factory(Insert, ".expression.insert")
 update = public_factory(Update, ".expression.update")
 delete = public_factory(Delete, ".expression.delete")
-aggregatefilter = public_factory(
-    AggregateFilter, ".expression.aggregatefilter")
+funcfilter = public_factory(
+    FunctionFilter, ".expression.funcfilter")
 
 
 # internal functions still being called from tests and the ORM,
index 46f3e27dc0590f6c068348345b2c56078d02e7ee..a07eca8c68e3e850ea8b0a206f9065af6d18d0fb 100644 (file)
@@ -12,7 +12,7 @@ from . import sqltypes, schema
 from .base import Executable, ColumnCollection
 from .elements import ClauseList, Cast, Extract, _literal_as_binds, \
     literal_column, _type_from_args, ColumnElement, _clone,\
-    Over, BindParameter, AggregateFilter
+    Over, BindParameter, FunctionFilter
 from .selectable import FromClause, Select, Alias
 
 from . import operators
@@ -119,8 +119,8 @@ class FunctionElement(Executable, ColumnElement, FromClause):
     def filter(self, *criterion):
         """Produce a FILTER clause against this function.
 
-        Used against aggregate functions,
-        for database backends that support aggregate "FILTER" clause.
+        Used against aggregate and window functions,
+        for database backends that support the "FILTER" clause.
 
         The expression::
 
@@ -128,15 +128,15 @@ class FunctionElement(Executable, ColumnElement, FromClause):
 
         is shorthand for::
 
-            from sqlalchemy import aggregatefilter
-            aggregatefilter(func.count(1), True)
+            from sqlalchemy import funcfilter
+            funcfilter(func.count(1), True)
 
-        See :func:`~.expression.aggregatefilter` for a full description.
+        See :func:`~.expression.funcfilter` for a full description.
 
         """
         if not criterion:
             return self
-        return AggregateFilter(self, *criterion)
+        return FunctionFilter(self, *criterion)
 
     @property
     def _from_objects(self):
index 6e730ad5088744fe60b0c85cf59946ddd04bf8bc..7bba2956342e70875a5d05ae74fa447162f63dab 100644 (file)
@@ -2190,7 +2190,7 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
             "(ORDER BY mytable.myid + :myid_1) AS anon_1 FROM mytable"
         )
 
-    def test_aggregate_filter(self):
+    def test_funcfilter(self):
         self.assert_compile(
             func.count(1).filter(),
             "count(:param_1)"
index 1b67ab68cd8b666d6b39cef3b6ab0d23721d52f8..6044cecb003cd91d3d21fdad2baf4cb207fec97e 100644 (file)
@@ -539,7 +539,7 @@ class ClauseTest(fixtures.TestBase, AssertsCompiledSQL):
         expr2 = CloningVisitor().traverse(expr)
         assert str(expr) == str(expr2)
 
-    def test_aggregatefilter(self):
+    def test_funcfilter(self):
         expr = func.count(1).filter(t1.c.col1 > 1)
         expr2 = CloningVisitor().traverse(expr)
         assert str(expr) == str(expr2)