]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Tested with pymssql 0.8.0
authorRick Morrison <rickmorrison@gmail.com>
Wed, 21 Feb 2007 01:38:58 +0000 (01:38 +0000)
committerRick Morrison <rickmorrison@gmail.com>
Wed, 21 Feb 2007 01:38:58 +0000 (01:38 +0000)
mssql: added query_timeout, fixes for passing auto_insert in dburl

CHANGES
lib/sqlalchemy/databases/mssql.py

diff --git a/CHANGES b/CHANGES
index f9db501f45e639e1289c17f37fba25d7966105f8..b95605a3aa193d7ae15ea424d1195e235a113d00 100644 (file)
--- a/CHANGES
+++ b/CHANGES
   - added optional __table_opts__ dictionary to ActiveMapper, will send kw options to 
   Table objects [ticket:462]
 - mssql:
+  - preliminary support for pyodbc (Yay!) [ticket:419]
   - better support for NVARCHAR types added [ticket:298]
   - fix for commit logic on pymssql
   - fix for query.get() with schema [ticket:456]
   - fix for non-integer relationships [ticket:473]
   - DB-API module now selectable at run-time [ticket:419]
-  - preliminary support for pyodbc (Yay!) [ticket:419]
   - now passes many more unit tests [tickets:422, 481, 415]
   - better unittest compatibility with ANSI functions [ticket:479]
   - improved support for implicit sequence PK columns with auto-insert [ticket:415]
   - fix for blank password in adodbapi [ticket:371]
   - fixes to get unit tests working with pyodbc [ticket:481]
+  - fix to auto_identity_insert on db-url query
+  - added query_timeout to db-url query parms. currently works only for pymssql
+  - tested with pymssql 0.8.0 (which is now LGPL)
 
   
 0.3.4
index 579bad88da02fded132e53fdc637093793072556..8cde7179feeb9d8b33ac6c4667caa52751cdd688 100644 (file)
@@ -2,7 +2,7 @@
 
 """
 notes:
-  supports both pymssql and adodbapi interfaces
+  supports the pymssq, adodbapi and pyodbc interfaces
 
   IDENTITY columns are supported by using SA schema.Sequence() objects. In other words:
          Table('test', mss_engine,
@@ -28,7 +28,6 @@ Known issues / TODO:
   no support for more than one IDENTITY column per table
   no support for table reflection of IDENTITY columns with (seed,increment) values other than (1,1)
   no support for GUID type columns (yet)
-  pymssql has problems with transaction control that this module attempts to work around
   pymssql has problems with binary and unicode data that this module does NOT work around
   adodbapi fails testtypes.py unit test on unicode data too -- issue with the test?
 
@@ -89,7 +88,7 @@ def use_pyodbc():
     sane_rowcount = False
     dialect = MSSQLDialect
     import warnings
-    warnings.warn('pyodbc support in sqlalchemy.databases.mssql is extremely experimental - use at your own risk.')
+    warnings.warn('pyodbc support in sqlalchemy.databases.mssql is experimental - use at your own risk.')
     colspecs[sqltypes.Unicode] = AdoMSUnicode
     ischema_names['nvarchar'] = AdoMSUnicode
 
@@ -362,7 +361,9 @@ class MSSQLDialect(ansisql.ANSIDialect):
         opts = url.translate_connect_args(['host', 'database', 'user', 'password', 'port'])
         opts.update(url.query)
         if opts.has_key('auto_identity_insert'):
-            self.auto_identity_insert = bool(int(opts['auto_identity_insert']))
+            self.auto_identity_insert = bool(opts.pop('auto_identity_insert'))
+        if opts.has_key('query_timeout'):
+            self.query_timeout = int(opts.pop('query_timeout'))
         return make_connect_string(opts)
 
     def create_execution_context(self):
@@ -571,6 +572,14 @@ class PyMSSQLDialect(MSSQLDialect):
             connection.rollback()
         except:
             pass
+
+    def create_connect_args(self, url):
+        r = super(PyMSSQLDialect, self).create_connect_args(url)
+        if hasattr(self, 'query_timeout'):
+            dbmodule._mssql.set_query_timeout(self.query_timeout)
+        return r
+        
+
 ##    This code is leftover from the initial implementation, for reference
 ##    def do_begin(self, connection):
 ##        """implementations might want to put logic here for turning autocommit on/off, etc."""