summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Menezes <rodrigo.menezes@moat.com>2014-09-05 13:37:32 -0400
committerRodrigo Menezes <rodrigo.menezes@moat.com>2014-09-05 13:37:32 -0400
commit619b0be0ce05c394613d8565c08c09cac10cdd88 (patch)
tree907e6441cb454e5df2cffa6c794ca3150b48592b
parentfbd2d70a5cfd7b5c219c51cb5b7866c4ab89cece (diff)
downloadsqlalchemy-619b0be0ce05c394613d8565c08c09cac10cdd88.tar.gz
Added get_foreign_table_names to interface and put it in the test requirements.
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py1
-rw-r--r--lib/sqlalchemy/engine/default.py1
-rw-r--r--lib/sqlalchemy/engine/interfaces.py4
-rw-r--r--lib/sqlalchemy/testing/requirements.py15
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