could get polluted by certain generative calls [ticket:852]
- dialects
-
+
- Added experimental support for MaxDB (versions >= 7.6.03.007 only).
+ - oracle will now reflect "DATE" as an OracleDateTime column, not
+ OracleDate
+
+ - added awareness of schema name in oracle table_names() function,
+ fixes metadata.reflect(schema='someschema') [ticket:847]
+
- sqlite will reflect "DECIMAL" as a numeric column.
- Made access dao detection more reliable [ticket:828]
ischema_names = {
'VARCHAR2' : OracleString,
- 'DATE' : OracleDate,
+ 'DATE' : OracleDateTime,
'DATETIME' : OracleDateTime,
'NUMBER' : OracleNumeric,
'BLOB' : OracleBinary,
else:
return name.encode(self.encoding)
+ def get_default_schema_name(self,connection):
+ try:
+ return self._default_schema_name
+ except AttributeError:
+ name = self._default_schema_name = \
+ connection.execute('SELECT USER FROM DUAL').scalar()
+ return name
+
def table_names(self, connection, schema):
# note that table_names() isnt loading DBLINKed or synonym'ed tables
- s = "select table_name from all_tables where tablespace_name NOT IN ('SYSTEM', 'SYSAUX')"
- return [self._normalize_name(row[0]) for row in connection.execute(s)]
+ if schema is None:
+ s = "select table_name from all_tables where tablespace_name NOT IN ('SYSTEM', 'SYSAUX')"
+ cursor = connection.execute(s)
+ else:
+ s = "select table_name from all_tables where tablespace_name NOT IN ('SYSTEM','SYSAUX') AND OWNER = :owner"
+ cursor = connection.execute(s,{'owner':self._denormalize_name(schema)})
+ return [self._normalize_name(row[0]) for row in cursor]
def reflecttable(self, connection, table, include_columns):
preparer = self.identifier_preparer
def test_unknown_types(self):
meta = MetaData(testbase.db)
t = Table("test", meta,
- Column('foo', String(30)))
+ Column('foo', DateTime))
import sys
dialect_module = sys.modules[testbase.db.dialect.__module__]
metadata.drop_all(bind=testbase.db)
class UnicodeTest(PersistTest):
- @testing.unsupported('sybase', 'maxdb')
+ @testing.unsupported('sybase', 'maxdb', 'oracle')
def test_basic(self):
try:
# the 'convert_unicode' should not get in the way of the reflection