@reflection.cache
def get_view_names(self, connection, schema=None, **kw):
- charset = self._connection_charset
if self.server_version_info < (5, 0, 2):
raise NotImplementedError
if schema is None:
rp = connection.execute("SHOW FULL TABLES FROM %s" %
self.identifier_preparer.quote_identifier(schema))
return [row[0] for row in self._compat_fetchall(rp, charset=charset)\
- if row[1] == 'VIEW']
+ if 'VIEW' in row[1]]
@reflection.cache
def get_table_options(self, connection, table_name, schema=None, **kw):
}
)
+ @testing.only_on(['mysql'],
+ 'requires information_schema')
+ def test_system_views(self):
+ dialect = testing.db.dialect
+ connection = testing.db.connect()
+ view_names = dialect.get_view_names(connection, "information_schema")
+ self.assert_('TABLES' in view_names)
+
class TypesTest(fixtures.TestBase, AssertsExecutionResults, AssertsCompiledSQL):
"Test MySQL column types"