]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Oracle - the implicit_retunring argument to create_engine()
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 23 Oct 2010 19:27:21 +0000 (15:27 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 23 Oct 2010 19:27:21 +0000 (15:27 -0400)
is now honored regardless of detected version of
Oracle.  Previously, the flag would be forced
to False if server version info was < 10.
[ticket:1878]

CHANGES
lib/sqlalchemy/dialects/oracle/base.py
test/dialect/test_oracle.py

diff --git a/CHANGES b/CHANGES
index c48e5b2dc193181f236ba6258b19e86374639be0..d1ea9cb920a1f6111b1d064d86e7b4f7e481b318 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -240,6 +240,13 @@ CHANGES
    - Fixed bug involving reflection of CURRENT_TIMESTAMP 
      default used with ON UPDATE clause, thanks to 
      Taavi Burns [ticket:1940]
+
+- oracle
+   - The implicit_retunring argument to create_engine()
+     is now honored regardless of detected version of 
+     Oracle.  Previously, the flag would be forced
+     to False if server version info was < 10.
+     [ticket:1878]
      
 - mssql
    - Fixed reflection bug which did not properly handle
index 0aa348953a10eb9fe49227d02154488207eda3cf..256972696452469d85132ff0d751ff21668f447a 100644 (file)
@@ -640,9 +640,11 @@ class OracleDialect(default.DefaultDialect):
 
     def initialize(self, connection):
         super(OracleDialect, self).initialize(connection)
-        self.implicit_returning = self.server_version_info > (10, ) and \
-                                        self.__dict__.get('implicit_returning', True)
-
+        self.implicit_returning = self.__dict__.get(
+                                    'implicit_returning',
+                                    self.server_version_info > (10, )
+                                    )
+        
         if self._is_oracle_8:
             self.colspecs = self.colspecs.copy()
             self.colspecs.pop(sqltypes.Interval)
index 29d18b988c6a8ac6c899f63f76c251488419491f..04b9d32749903a60c0459d0bdee397bc9ee5c807 100644 (file)
@@ -376,6 +376,7 @@ class CompatFlagsTest(TestBase, AssertsCompiledSQL):
         assert dialect.use_ansi
 
         dialect.initialize(testing.db.connect())
+        assert not dialect.implicit_returning
         assert not dialect._supports_char_length
         assert not dialect._supports_nchar
         assert not dialect.use_ansi
@@ -383,6 +384,12 @@ class CompatFlagsTest(TestBase, AssertsCompiledSQL):
         self.assert_compile(Unicode(50),"VARCHAR(50)",dialect=dialect)
         self.assert_compile(UnicodeText(),"CLOB",dialect=dialect)
 
+        dialect = oracle.dialect(implicit_returning=True)
+        dialect._get_server_version_info = server_version_info
+        dialect.initialize(testing.db.connect())
+        assert dialect.implicit_returning
+        
+
     def test_default_flags(self):
         """test with no initialization or server version info"""
         dialect = oracle.dialect()