summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py36
-rw-r--r--lib/sqlalchemy/engine/default.py1
-rw-r--r--lib/sqlalchemy/engine/interfaces.py6
-rw-r--r--lib/sqlalchemy/engine/reflection.py3
-rw-r--r--lib/sqlalchemy/testing/requirements.py15
5 files changed, 20 insertions, 41 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index f65bc2473..63f6eb891 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -1679,6 +1679,23 @@ class PGInspector(reflection.Inspector):
schema = schema or self.default_schema_name
return self.dialect._load_enums(self.bind, schema)
+ def get_foreign_table_names(self, connection, schema=None, **kw):
+ if schema is not None:
+ current_schema = schema
+ else:
+ current_schema = self.default_schema_name
+
+ result = connection.execute(
+ sql.text("SELECT relname FROM pg_class c "
+ "WHERE relkind = 'f' "
+ "AND '%s' = (select nspname from pg_namespace n "
+ "where n.oid = c.relnamespace) " %
+ current_schema,
+ typemap={'relname': sqltypes.Unicode}
+ )
+ )
+ return [row[0] for row in result]
+
class CreateEnumType(schema._CreateDropBase):
__visit_name__ = "create_enum_type"
@@ -1753,7 +1770,6 @@ class PGDialect(default.DefaultDialect):
supports_default_values = True
supports_empty_insert = False
- supports_foreign_tables = True
supports_multivalues_insert = True
default_paramstyle = 'pyformat'
ischema_names = ischema_names
@@ -2100,24 +2116,6 @@ class PGDialect(default.DefaultDialect):
return view_names
@reflection.cache
- def get_foreign_table_names(self, connection, schema=None, **kw):
- if schema is not None:
- current_schema = schema
- else:
- current_schema = self.default_schema_name
-
- result = connection.execute(
- sql.text("SELECT relname FROM pg_class c "
- "WHERE relkind = 'f' "
- "AND '%s' = (select nspname from pg_namespace n "
- "where n.oid = c.relnamespace) " %
- current_schema,
- typemap={'relname': sqltypes.Unicode}
- )
- )
- return [row[0] for row in result]
-
- @reflection.cache
def get_view_definition(self, connection, view_name, schema=None, **kw):
if schema is not None:
current_schema = schema
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index a59efd301..2fece76b9 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -107,7 +107,6 @@ class DefaultDialect(interfaces.Dialect):
default_paramstyle = 'named'
supports_default_values = False
supports_empty_insert = True
- supports_foreign_tables = False
supports_multivalues_insert = False
server_version_info = None
diff --git a/lib/sqlalchemy/engine/interfaces.py b/lib/sqlalchemy/engine/interfaces.py
index 795be8273..71df29cac 100644
--- a/lib/sqlalchemy/engine/interfaces.py
+++ b/lib/sqlalchemy/engine/interfaces.py
@@ -319,12 +319,6 @@ class Dialect(object):
raise NotImplementedError()
- def get_foreign_table_names(self, connection, schema=None, **kw):
- """Return a list of foreign table names for `schema`.
- """
-
- raise NotImplementedError()
-
def get_view_definition(self, connection, view_name, schema=None, **kw):
"""Return view definition.
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index 012d1d35d..f41ea1fa2 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -227,6 +227,9 @@ class Inspector(object):
:param schema: Optional, retrieve names from a non-default schema.
For special quoting, use :class:`.quoted_name`.
+ .. versionchanged:: 1.0.0 now returns materialized views as well
+ as normal views.
+
"""
return self.dialect.get_view_names(self.bind, schema,
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py
index f0f0e9e47..a04bcbbdd 100644
--- a/lib/sqlalchemy/testing/requirements.py
+++ b/lib/sqlalchemy/testing/requirements.py
@@ -253,15 +253,6 @@ class SuiteRequirements(Requirements):
return exclusions.closed()
@property
- def foreign_tables(self):
- """target platform supports FOREIGN TABLEs."""
-
- return exclusions.only_if(
- lambda config: config.db.dialect.supports_foreign_tables,
- "%(database)s %(does_support)s 'FOREIGN TABLEs'"
- )
-
- @property
def schemas(self):
"""Target database must support external schemas, and have one
named 'test_schema'."""
@@ -311,12 +302,6 @@ class SuiteRequirements(Requirements):
return self.views
@property
- def foreign_table_reflection(self):
- """target database must support inspection of the full CREATE FOREIGN TABLE definition.
- """
- return self.foreign_tables
-
- @property
def schema_reflection(self):
return self.schemas