diff --git a/ibm_db_sa/base.py b/ibm_db_sa/base.py index e5f9454..54b2401 100644 --- a/ibm_db_sa/base.py +++ b/ibm_db_sa/base.py @@ -154,6 +154,10 @@ def process(value): return process +class BOOLEAN(sa_types.Boolean): + __visit_name__ = 'BOOLEAN' + + class DOUBLE(sa_types.Numeric): __visit_name__ = 'DOUBLE' @@ -190,6 +194,7 @@ class XML(sa_types.Text): } ischema_names = { + 'BOOLEAN': BOOLEAN, 'BLOB': BLOB, 'CHAR': CHAR, 'CHARACTER': CHAR, diff --git a/ibm_db_sa/reflection.py b/ibm_db_sa/reflection.py index e25414b..304c573 100644 --- a/ibm_db_sa/reflection.py +++ b/ibm_db_sa/reflection.py @@ -357,7 +357,13 @@ def get_foreign_keys(self, connection, table_name, schema=None, **kw): sysfkeys.c.pkname, sysfkeys.c.pktabschema, sysfkeys.c.pktabname, sysfkeys.c.pkcolname).\ select_from( - join(systbl,sysfkeys, systbl.c.tabname == sysfkeys.c.pktabname) + join(systbl, + sysfkeys, + sql.and_( + systbl.c.tabname == sysfkeys.c.pktabname, + systbl.c.tabschema == sysfkeys.c.pktabschema + ) + ) ).where(systbl.c.type == 'T').\ where(systbl.c.tabschema == current_schema).\ where(sysfkeys.c.fktabname == table_name).\