]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
get_default_identifier() normalizes the returned name so that it may
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 May 2008 17:05:50 +0000 (17:05 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 May 2008 17:05:50 +0000 (17:05 +0000)
by used as the "schema" argument on a Table.  Fixes the reflection unit
test that requires this.

CHANGES
lib/sqlalchemy/databases/oracle.py
test/engine/reflection.py

diff --git a/CHANGES b/CHANGES
index df9120b64b7772559cdbfa7677ea90e3833b57bd..89dec92d9d0d0e94127e5aca1eeef1a6b8e3164c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,13 @@
 CHANGES
 =======
 
+0.4.7
+=====
+- oracle
+    - Oracle get_default_schema_name() "normalizes" the name
+      before returning, meaning it returns a lower-case name
+      when the identifier is detected as case insensitive.
+
 0.4.6
 =====
 - orm
index 734ad58d108993b69a7829f8c5a8bb0e800edbfe..cda39b4990d3f5648c1938f33c46f741e440be64 100644 (file)
@@ -381,7 +381,7 @@ class OracleDialect(default.DefaultDialect):
             return name.encode(self.encoding)
 
     def get_default_schema_name(self, connection):
-        return connection.execute('SELECT USER FROM DUAL').scalar()
+        return self._normalize_name(connection.execute('SELECT USER FROM DUAL').scalar())
     get_default_schema_name = base.connection_memoize(
         ('dialect', 'default_schema_name'))(get_default_schema_name)
 
@@ -452,7 +452,7 @@ class OracleDialect(default.DefaultDialect):
         if not dblink:
             dblink = ''
         if not owner:
-            owner = self._denormalize_name(table.schema) or self.get_default_schema_name(connection)
+            owner = self._denormalize_name(table.schema or self.get_default_schema_name(connection))
 
         c = connection.execute ("select COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, DATA_DEFAULT from ALL_TAB_COLUMNS%(dblink)s where TABLE_NAME = :table_name and OWNER = :owner" % {'dblink':dblink}, {'table_name':actual_name, 'owner':owner})
 
index 2ace3306a25b1256c8519a679d850bc7f5e88763..7deba3c4ce3d114ccbaf074f56537b36178bdd79 100644 (file)
@@ -668,7 +668,7 @@ class SchemaTest(TestBase):
 
     @testing.unsupported('sqlite', 'firebird')
     # fixme: revisit these below.
-    @testing.fails_on('oracle', 'mssql', 'sybase', 'access')
+    @testing.fails_on('mssql', 'sybase', 'access')
     def test_explicit_default_schema(self):
         engine = testing.db