From: Mike Bayer Date: Sat, 23 Oct 2010 19:27:21 +0000 (-0400) Subject: - Oracle - the implicit_retunring argument to create_engine() X-Git-Tag: rel_0_6_5~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c01c6baf5715a13d707a4d57717f9ad1bc12027a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 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] --- diff --git a/CHANGES b/CHANGES index c48e5b2dc1..d1ea9cb920 100644 --- 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 diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 0aa348953a..2569726964 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -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) diff --git a/test/dialect/test_oracle.py b/test/dialect/test_oracle.py index 29d18b988c..04b9d32749 100644 --- a/test/dialect/test_oracle.py +++ b/test/dialect/test_oracle.py @@ -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()