construct (i.e. declarative columns). [ticket:1353]
- mssql
+ - Modified how savepoint logic works to prevent it from
+ stepping on non-savepoint oriented routines. Savepoint
+ support is still very experimental.
+
- Added in reserved words for MSSQL that covers version 2008
and all prior versions. [ticket:1310]
newobj.dialect = self
return newobj
- def do_begin(self, connection):
- cursor = connection.cursor()
- cursor.execute("SET IMPLICIT_TRANSACTIONS OFF")
- cursor.execute("BEGIN TRANSACTION")
+ def do_savepoint(self, connection, name):
+ util.warn("Savepoint support in mssql is experimental and may lead to data loss.")
+ connection.execute("IF @@TRANCOUNT = 0 BEGIN TRANSACTION")
+ connection.execute("SAVE TRANSACTION %s" % name)
def do_release_savepoint(self, connection, name):
pass
field = self.extract_map.get(extract.field, extract.field)
return 'DATEPART("%s", %s)' % (field, self.process(extract.expr))
- 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)