From: Mike Bayer Date: Sat, 19 Jun 2010 17:39:32 +0000 (-0400) Subject: - Fixed ora-8 compatibility flags such that they X-Git-Tag: rel_0_6_2~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6457901f968569bb4c09622cb4f9ba264eee41ec;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Fixed ora-8 compatibility flags such that they don't cache a stale value from before the first database connection actually occurs. [ticket:1819] --- diff --git a/CHANGES b/CHANGES index f41bac381d..7eb7b2adb6 100644 --- a/CHANGES +++ b/CHANGES @@ -82,6 +82,11 @@ CHANGES - MySQL dialect doesn't emit CAST() for MySQL version detected < 4.0.2. This allows the unicode check on connect to proceed. [ticket:1826] + +- oracle: + - Fixed ora-8 compatibility flags such that they + don't cache a stale value from before the first + database connection actually occurs. [ticket:1819] - firebird - Fixed incorrect signature in do_execute(), error diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 6443886dc6..52bf815712 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -634,11 +634,11 @@ class OracleDialect(default.DefaultDialect): return self.server_version_info and \ self.server_version_info < (9, ) - @util.memoized_property + @property def _supports_char_length(self): return not self._is_oracle_8 - @util.memoized_property + @property def _supports_nchar(self): return not self._is_oracle_8 diff --git a/test/dialect/test_oracle.py b/test/dialect/test_oracle.py index a3f037b5fa..6a279ea9d8 100644 --- a/test/dialect/test_oracle.py +++ b/test/dialect/test_oracle.py @@ -366,6 +366,12 @@ class CompatFlagsTest(TestBase, AssertsCompiledSQL): dialect = oracle.dialect() dialect._get_server_version_info = server_version_info + + # before connect, assume modern DB + assert dialect._supports_char_length + assert dialect._supports_nchar + assert dialect.use_ansi + dialect.initialize(testing.db.connect()) assert not dialect._supports_char_length assert not dialect._supports_nchar @@ -397,6 +403,7 @@ class CompatFlagsTest(TestBase, AssertsCompiledSQL): self.assert_compile(Unicode(50),"NVARCHAR2(50)",dialect=dialect) self.assert_compile(UnicodeText(),"NCLOB",dialect=dialect) + class MultiSchemaTest(TestBase, AssertsCompiledSQL): __only_on__ = 'oracle'