From 052d7f36433a0c29ab20d0ea37933c03a488e12d Mon Sep 17 00:00:00 2001 From: Michael Trier Date: Thu, 11 Dec 2008 19:24:22 +0000 Subject: Implemented experimental savepoint support in mssql. There are still some failing savepoint related tests. --- lib/sqlalchemy/databases/mssql.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lib/sqlalchemy/databases') diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py index ac803cfd7..23ad925f2 100644 --- a/lib/sqlalchemy/databases/mssql.py +++ b/lib/sqlalchemy/databases/mssql.py @@ -1000,6 +1000,16 @@ class MSSQLCompiler(compiler.DefaultCompiler): kwargs['mssql_aliased'] = True return super(MSSQLCompiler, self).visit_alias(alias, **kwargs) + def visit_savepoint(self, savepoint_stmt): + util.warn("Savepoint support in mssql is experimental and may lead to data loss.") + return "SAVE TRANSACTION %s" % self.preparer.format_savepoint(savepoint_stmt) + + def visit_rollback_to_savepoint(self, savepoint_stmt): + return "ROLLBACK TRANSACTION %s" % self.preparer.format_savepoint(savepoint_stmt) + + def visit_release_savepoint(self, savepoint_stmt): + pass + def visit_column(self, column, result_map=None, **kwargs): if column.table is not None and \ (not self.isupdate and not self.isdelete) or self.is_subquery(): -- cgit v1.2.1