diff options
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/base.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/engine/interfaces.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/requirements.py | 15 |
4 files changed, 19 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 69ae6cfed..f65bc2473 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -1753,6 +1753,7 @@ 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 diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 2fece76b9..a59efd301 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -107,6 +107,7 @@ 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 e1e346850..795be8273 100644 --- a/lib/sqlalchemy/engine/interfaces.py +++ b/lib/sqlalchemy/engine/interfaces.py @@ -319,8 +319,8 @@ class Dialect(object): raise NotImplementedError() - def get_foreign_tables(self, connection, view_name, schema=None, **kw): - """Return a list of foreign table names for `schema`.""" + def get_foreign_table_names(self, connection, schema=None, **kw): + """Return a list of foreign table names for `schema`. """ raise NotImplementedError() diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py index a04bcbbdd..f0f0e9e47 100644 --- a/lib/sqlalchemy/testing/requirements.py +++ b/lib/sqlalchemy/testing/requirements.py @@ -253,6 +253,15 @@ 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'.""" @@ -302,6 +311,12 @@ 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 |
