def savepoints(fn): """Target database must support savepoints.""" return _chain_decorators_on( fn, no_support('access', 'savepoints not supported'), no_support('sqlite', 'savepoints not supported'), no_support('sybase', 'savepoints not supported'), exclude('mysql', '<', (5, 0, 3), 'savepoints not supported'), exclude('informix', '<', (11, 55, 'xC3'), 'savepoints not supported'), )
def savepoints(fn): """Target database must support savepoints.""" return _chain_decorators_on( fn, emits_warning_on('mssql', 'Savepoint support in mssql is experimental and may lead to data loss.'), no_support('access', 'savepoints not supported'), no_support('sqlite', 'savepoints not supported'), no_support('sybase', 'savepoints not supported'), exclude('mysql', '<', (5, 0, 3), 'savepoints not supported'), exclude('informix', '<', (11, 55, 'xC3'), 'savepoints not supported'), )
def savepoints(fn): """Target database must support savepoints.""" return _chain_decorators_on( fn, emits_warning_on('mssql', 'Savepoint support in mssql is experimental and may lead to data loss.'), no_support('access', 'not supported by database'), no_support('sqlite', 'not supported by database'), no_support('sybase', 'FIXME: guessing, needs confirmation'), exclude('mysql', '<', (5, 0, 3), 'not supported by database'), exclude('informix', '<', (11, 55, 'xC3'), 'not supported by database'), )
def unicode_connections(fn): """Target driver must support some encoding of Unicode across the wire.""" # TODO: expand to exclude MySQLdb versions w/ broken unicode return _chain_decorators_on( fn, exclude('mysql', '<', (4, 1, 1), 'no unicode connection support'), )
def row_triggers(fn): """Target must support standard statement-running EACH ROW triggers.""" return _chain_decorators_on( fn, # no access to same table no_support('mysql', 'requires SUPER priv'), exclude('mysql', '<', (5, 0, 10), 'not supported by database'), no_support('postgres', 'not supported by database: no statements'), )
def unicode_ddl(fn): """Target driver must support some encoding of Unicode across the wire.""" # TODO: expand to exclude MySQLdb versions w/ broken unicode return _chain_decorators_on( fn, no_support('maxdb', 'database support flakey'), no_support('oracle', 'FIXME: no support in database?'), no_support('sybase', 'FIXME: guessing, needs confirmation'), exclude('mysql', '<', (4, 1, 1), 'no unicode connection support'), )
def savepoints(fn): """Target database must support savepoints.""" return _chain_decorators_on( fn, emits_warning_on('mssql', 'Savepoint support in mssql is experimental and may lead to data loss.'), no_support('access', 'not supported by database'), no_support('sqlite', 'not supported by database'), no_support('sybase', 'FIXME: guessing, needs confirmation'), exclude('mysql', '<', (5, 0, 3), 'not supported by database'), )
def row_triggers(fn): """Target must support standard statement-running EACH ROW triggers.""" return _chain_decorators_on( fn, # no access to same table no_support("mysql", "requires SUPER priv"), exclude("mysql", "<", (5, 0, 10), "not supported by database"), # huh? TODO: implement triggers for PG tests, remove this no_support("postgresql", "PG triggers need to be implemented for tests"), )
def independent_connections(fn): """Target must support simultaneous, independent database connections.""" # This is also true of some configurations of UnixODBC and probably win32 # ODBC as well. return _chain_decorators_on( fn, no_support("sqlite", "no driver support"), exclude("mssql", "<", (9, 0, 0), "SQL Server 2005+ is required for independent connections"), )
def unicode_ddl(fn): """Target driver must support some encoding of Unicode across the wire.""" # TODO: expand to exclude MySQLdb versions w/ broken unicode return _chain_decorators_on( fn, no_support("maxdb", "database support flakey"), no_support("oracle", "FIXME: no support in database?"), no_support("sybase", "FIXME: guessing, needs confirmation"), exclude("mysql", "<", (4, 1, 1), "no unicode connection support"), )
def savepoints(fn): """Target database must support savepoints.""" return _chain_decorators_on( fn, emits_warning_on("mssql", "Savepoint support in mssql is experimental and may lead to data loss."), no_support("access", "not supported by database"), no_support("sqlite", "not supported by database"), no_support("sybase", "FIXME: guessing, needs confirmation"), exclude("mysql", "<", (5, 0, 3), "not supported by database"), )
def row_triggers(fn): """Target must support standard statement-running EACH ROW triggers.""" return _chain_decorators_on( fn, # no access to same table no_support('mysql', 'requires SUPER priv'), exclude('mysql', '<', (5, 0, 10), 'not supported by database'), # huh? TODO: implement triggers for PG tests, remove this no_support('postgresql', 'PG triggers need to be implemented for tests'), )
def independent_connections(fn): """Target must support simultaneous, independent database connections.""" # This is also true of some configurations of UnixODBC and probably win32 # ODBC as well. return _chain_decorators_on( fn, no_support('sqlite', 'no driver support'), exclude('mssql', '<', (9, 0, 0), 'SQL Server 2005+ is required for independent connections'), )
def independent_connections(fn): """Target must support simultaneous, independent database connections.""" # This is also true of some configurations of UnixODBC and probably win32 # ODBC as well. return _chain_decorators_on( fn, no_support('sqlite', 'Independent connections disabled when ' ':memory: connections are used'), exclude('mssql', '<', (9, 0, 0), 'SQL Server 2005+ is required for independent connections'), )
def two_phase_transactions(fn): """Target database must support two-phase transactions.""" return _chain_decorators_on( fn, no_support('access', 'not supported by database'), no_support('firebird', 'no SA implementation'), no_support('maxdb', 'not supported by database'), no_support('mssql', 'FIXME: guessing, needs confirmation'), no_support('oracle', 'no SA implementation'), no_support('sqlite', 'not supported by database'), no_support('sybase', 'FIXME: guessing, needs confirmation'), exclude('mysql', '<', (5, 0, 3), 'not supported by database'), )
def two_phase_transactions(fn): """Target database must support two-phase transactions.""" return _chain_decorators_on( fn, no_support('access', 'not supported by database'), no_support('firebird', 'no SA implementation'), no_support('maxdb', 'not supported by database'), no_support('mssql', 'FIXME: guessing, needs confirmation'), no_support('oracle', 'no SA implementation'), no_support('drizzle', 'not supported by database'), no_support('sqlite', 'not supported by database'), no_support('sybase', 'FIXME: guessing, needs confirmation'), no_support('postgresql+zxjdbc', 'FIXME: JDBC driver confuses the transaction state, may ' 'need separate XA implementation'), exclude('mysql', '<', (5, 0, 3), 'not supported by database'), )
def two_phase_transactions(fn): """Target database must support two-phase transactions.""" return _chain_decorators_on( fn, no_support("access", "not supported by database"), no_support("firebird", "no SA implementation"), no_support("maxdb", "not supported by database"), no_support("mssql", "FIXME: guessing, needs confirmation"), no_support("oracle", "no SA implementation"), no_support("sqlite", "not supported by database"), no_support("sybase", "FIXME: guessing, needs confirmation"), no_support( "postgresql+zxjdbc", "FIXME: JDBC driver confuses the transaction state, may " "need separate XA implementation", ), exclude("mysql", "<", (5, 0, 3), "not supported by database"), )
def two_phase_transactions(fn): """Target database must support two-phase transactions.""" return _chain_decorators_on( fn, no_support('access', 'not supported by database'), no_support('firebird', 'no SA implementation'), no_support('maxdb', 'not supported by database'), no_support('mssql', 'FIXME: guessing, needs confirmation'), no_support('oracle', 'no SA implementation'), no_support('drizzle', 'not supported by database'), no_support('sqlite', 'not supported by database'), no_support('sybase', 'FIXME: guessing, needs confirmation'), no_support( 'postgresql+zxjdbc', 'FIXME: JDBC driver confuses the transaction state, may ' 'need separate XA implementation'), exclude('mysql', '<', (5, 0, 3), 'not supported by database'), )
def subqueries(fn): """Target database must support subqueries.""" return _chain_decorators_on(fn, exclude("mysql", "<", (4, 1, 1), "no subquery support"))
def subqueries(fn): """Target database must support subqueries.""" return _chain_decorators_on( fn, exclude('mysql', '<', (4, 1, 1), 'no subquery support'), )