def isolation_level(fn): return _chain_decorators_on( fn, only_on(('postgresql', 'sqlite'), "DBAPI has no isolation level support"), fails_on('postgresql+pypostgresql', 'pypostgresql bombs on multiple isolation level calls') )
def update_from(fn): """Target must support UPDATE..FROM syntax""" return _chain_decorators_on( fn, only_on(('postgresql', 'mssql', 'mysql'), "Backend does not support UPDATE..FROM") )
def isolation_level(fn): return _chain_decorators_on( fn, only_on(('postgresql', 'sqlite', 'mysql'), "DBAPI has no isolation level support"), fails_on('postgresql+pypostgresql', 'pypostgresql bombs on multiple isolation level calls'))
def window_functions(fn): return _chain_decorators_on( fn, only_on(('postgresql', 'mssql', 'oracle'), "Backend does not support window functions"), )
def update_from(fn): """Target must support UPDATE..FROM syntax""" return _chain_decorators_on( fn, only_on(('postgresql', 'mssql', 'mysql'), "Backend does not support UPDATE..FROM"))