def except_(fn): """Target database must support EXCEPT or equivlaent (i.e. MINUS).""" return _chain_decorators_on( fn, fails_on('firebird', 'no support for EXCEPT'), fails_on('mysql', 'no support for EXCEPT'), fails_on('sybase', 'no support for EXCEPT'), )
def intersect(fn): """Target database must support INTERSECT or equivlaent.""" return _chain_decorators_on( fn, fails_on('firebird', 'no support for INTERSECT'), fails_on('mysql', 'no support for INTERSECT'), fails_on('sybase', 'no support for INTERSECT'), )
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 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 offset(fn): """Target database must support some method of adding OFFSET or equivalent to a result set.""" return _chain_decorators_on( fn, fails_on('sybase', 'no support for OFFSET or equivalent'), )