class documentation

class _FunctionGenerator(object):

View In Hierarchy

Generate SQL function expressions.

.func is a special object instance which generates SQL functions based on name-based attributes, e.g.:

>>> print(func.count(1))
count(:param_1)

The returned object is an instance of .Function, and is a column-oriented SQL element like any other, and is used in that way:

>>> print(select(func.count(table.c.id)))
SELECT count(sometable.id) FROM sometable

Any name can be given to .func. If the function name is unknown to SQLAlchemy, it will be rendered exactly as is. For common SQL functions which SQLAlchemy is aware of, the name may be interpreted as a generic function which will be compiled appropriately to the target database:

>>> print(func.current_timestamp())
CURRENT_TIMESTAMP

To call functions which are present in dot-separated packages, specify them in the same manner:

>>> print(func.stats.yield_curve(5, 10))
stats.yield_curve(:yield_curve_1, :yield_curve_2)

SQLAlchemy can be made aware of the return type of functions to enable type-specific lexical and result-based behavior. For example, to ensure that a string-based function returns a Unicode value and is similarly treated as a string in expressions, specify ~sqlalchemy.types.Unicode as the type:

>>> print(func.my_string(u'hi', type_=Unicode) + ' ' +
...       func.my_string(u'there', type_=Unicode))
my_string(:my_string_1) || :my_string_2 || my_string(:my_string_3)

The object returned by a .func call is usually an instance of .Function. This object meets the "column" interface, including comparison and labeling functions. The object can also be passed the ~.Connectable.execute method of a _engine.Connection or _engine.Engine, where it will be wrapped inside of a SELECT statement first:

print(connection.execute(func.current_timestamp()).scalar())

In a few exception cases, the .func accessor will redirect a name to a built-in expression such as .cast or .extract, as these names have well-known meaning but are not exactly the same as "functions" from a SQLAlchemy perspective.

Functions which are interpreted as "generic" functions know how to calculate their return type automatically. For a listing of known generic functions, see :ref:`generic_functions`.

Note

The .func construct has only limited support for calling standalone "stored procedures", especially those with special parameterization concerns.

See the section :ref:`stored_procedures` for details on how to use the DBAPI-level callproc() method for fully traditional stored procedures.

See Also

:ref:`coretutorial_functions` - in the Core Tutorial

.Function

Method __call__ Undocumented
Method __getattr__ Undocumented
Method __init__ Undocumented
Instance Variable __names Undocumented
Instance Variable opts Undocumented
def __call__(self, *c, **kwargs):

Undocumented

def __getattr__(self, name):

Undocumented

def __init__(self, **opts):

Undocumented

__names: list =

Undocumented

opts =

Undocumented