summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/functions.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql/functions.py')
-rw-r--r--lib/sqlalchemy/sql/functions.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/sqlalchemy/sql/functions.py b/lib/sqlalchemy/sql/functions.py
index 5cea7750a..4b4d2d463 100644
--- a/lib/sqlalchemy/sql/functions.py
+++ b/lib/sqlalchemy/sql/functions.py
@@ -54,10 +54,13 @@ class FunctionElement(Executable, ColumnElement, FromClause):
packagenames = ()
+ _has_args = False
+
def __init__(self, *clauses, **kwargs):
"""Construct a :class:`.FunctionElement`.
"""
args = [_literal_as_binds(c, self.name) for c in clauses]
+ self._has_args = self._has_args or bool(args)
self.clause_expr = ClauseList(
operator=operators.comma_op,
group_contents=True, *args).\
@@ -635,6 +638,7 @@ class GenericFunction(util.with_metaclass(_GenericMeta, Function)):
parsed_args = kwargs.pop('_parsed_args', None)
if parsed_args is None:
parsed_args = [_literal_as_binds(c, self.name) for c in args]
+ self._has_args = self._has_args or bool(parsed_args)
self.packagenames = []
self._bind = kwargs.get('bind', None)
self.clause_expr = ClauseList(
@@ -671,8 +675,8 @@ class next_value(GenericFunction):
class AnsiFunction(GenericFunction):
- def __init__(self, **kwargs):
- GenericFunction.__init__(self, **kwargs)
+ def __init__(self, *args, **kwargs):
+ GenericFunction.__init__(self, *args, **kwargs)
class ReturnTypeFromArgs(GenericFunction):
@@ -686,7 +690,7 @@ class ReturnTypeFromArgs(GenericFunction):
class coalesce(ReturnTypeFromArgs):
- pass
+ _has_args = True
class max(ReturnTypeFromArgs):
@@ -717,7 +721,7 @@ class char_length(GenericFunction):
class random(GenericFunction):
- pass
+ _has_args = True
class count(GenericFunction):
@@ -937,6 +941,7 @@ class cube(GenericFunction):
.. versionadded:: 1.2
"""
+ _has_args = True
class rollup(GenericFunction):
@@ -952,6 +957,7 @@ class rollup(GenericFunction):
.. versionadded:: 1.2
"""
+ _has_args = True
class grouping_sets(GenericFunction):
@@ -984,3 +990,4 @@ class grouping_sets(GenericFunction):
.. versionadded:: 1.2
"""
+ _has_args = True