]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Added get_foreign_table_names to interface and put it in the test requirements.
authorRodrigo Menezes <rodrigo.menezes@moat.com>
Fri, 5 Sep 2014 17:37:32 +0000 (13:37 -0400)
committerRodrigo Menezes <rodrigo.menezes@moat.com>
Fri, 5 Sep 2014 17:37:32 +0000 (13:37 -0400)
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/engine/interfaces.py
lib/sqlalchemy/testing/requirements.py

index 69ae6cfed36ccbb15371e01b00ddc43fa526e74b..f65bc24735ac08e7a5dacce0e7b41bb7a5e2b6e4 100644 (file)
@@ -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
index 2fece76b9fe5fafcc3f96b0b4e89352e02d76bff..a59efd3015389246349e9edb0c06aea721f0e1e0 100644 (file)
@@ -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
index e1e346850f87f3294313680e10afdf1f9f81bc04..795be8273b8a757b9c957c69f731e0ede3bee7a9 100644 (file)
@@ -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()
index a04bcbbdd4d4833343ed14b5a581aef1cba6b0ff..f0f0e9e4701cfc8941ac96c799dfb88883fb8138 100644 (file)
@@ -252,6 +252,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
@@ -301,6 +310,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