]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
merged r4809 from rel_0_4, oracle fix
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 May 2008 17:11:41 +0000 (17:11 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 May 2008 17:11:41 +0000 (17:11 +0000)
CHANGES
lib/sqlalchemy/databases/oracle.py
test/engine/reflection.py

diff --git a/CHANGES b/CHANGES
index 3eacec328843a80943f7fc3cd9f84cf8185c6eaa..f5ee3da0a9dc377db0a1601acee50e955275ecf8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -70,6 +70,13 @@ user_defined_state
     - Added support for returning values from inserts (2.0+ only),
       updates and deletes (2.1+ only).
 
+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 5a839ec7c6523648855b963c3aeeb4eed4877a8f..ed1778a6f9acd454cf6df8f072de99fa8eb223b5 100644 (file)
@@ -382,7 +382,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)
 
@@ -453,7 +453,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 565e29b4f3925e848e4d63cf2f5477e9ccfde3cd..259733027e110c76210b878ddc064ec0a2c25459 100644 (file)
@@ -679,7 +679,7 @@ class SchemaTest(TestBase):
     @testing.crashes('firebird', 'No schema support')
     @testing.fails_on('sqlite')
     # fixme: revisit these below.
-    @testing.fails_on('access', 'oracle', 'mssql', 'sybase')
+    @testing.fails_on('access', 'mssql', 'sybase')
     def test_explicit_default_schema(self):
         engine = testing.db