From 97179cf47671ec3ac1e7d0e92cb9f317e871fd70 Mon Sep 17 00:00:00 2001 From: OneLastTry Date: Tue, 13 Jun 2023 16:09:52 -0400 Subject: [PATCH] fk processing - added condition to avoid repeating entries for constraints - added else condition to avoid int(None) error (passed tested locally) --- sqlalchemy_iris/base.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sqlalchemy_iris/base.py b/sqlalchemy_iris/base.py index 14e9213..901a836 100644 --- a/sqlalchemy_iris/base.py +++ b/sqlalchemy_iris/base.py @@ -1485,9 +1485,11 @@ def get_multi_foreign_keys( if fkdelrule != "NO ACTION": fkey["options"]["ondelete"] = fkdelrule - - fkey["constrained_columns"].append(scol) - fkey["referred_columns"].append(rcol) + + if scol not in fkey["constrained_columns"]: + fkey["constrained_columns"].append(scol) + if rcol not in fkey["referred_columns"]: + fkey["referred_columns"].append(rcol) default = ReflectionDefaults.foreign_keys @@ -1606,10 +1608,12 @@ def get_multi_columns( ): if charlen == -1: charlen = None - try: - kwargs["length"] = int(charlen) - except ValueError: kwargs["length"] = 0 + else: + try: + kwargs["length"] = int(charlen) + except ValueError: + kwargs["length"] = 0 if collation: kwargs["collation"] = collation if coltype is None: