diff options
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/engine/base.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/expression.py | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 6a4fa5d08..98d06a792 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1194,7 +1194,7 @@ class Connection(Connectable): # poor man's multimethod/generic function thingy executors = { - expression.Function: _execute_function, + expression.FunctionElement: _execute_function, expression.ClauseElement: _execute_clauseelement, Compiled: _execute_compiled, schema.SchemaItem: _execute_default, diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 89137d2ce..878b0d826 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2481,15 +2481,13 @@ class _Case(ColumnElement): class FunctionElement(ColumnElement, FromClause): """Base for SQL function-oriented constructs.""" - + def __init__(self, *clauses, **kwargs): - self._bind = kwargs.get('bind', None) args = [_literal_as_binds(c, self.name) for c in clauses] self.clause_expr = ClauseList( operator=operators.comma_op, group_contents=True, *args).\ self_group() - self.type = sqltypes.to_instance(kwargs.get('type_', None)) @property def columns(self): @@ -2535,6 +2533,9 @@ class Function(FunctionElement): def __init__(self, name, *clauses, **kw): self.packagenames = kw.pop('packagenames', None) or [] self.name = name + self._bind = kw.get('bind', None) + self.type = sqltypes.to_instance(kw.get('type_', None)) + FunctionElement.__init__(self, *clauses, **kw) def _bind_param(self, obj): |
