there are multiple, equivalent foreign keys
if len(constraints) > 1:
dedupe = set(tuple(crit) for crit in constraints.values())
if len(dedupe) == 1:
- key = constraints.keys()[0]
+ key = list(constraints)[0]
constraints = {key: constraints[key]}
if len(constraints) != 1:
"FROM t2 JOIN t3 ON t2.id = t3.t2id) ON t2.id = t3_t2id")
+ def test_join_multiple_equiv_fks(self):
+ m = MetaData()
+ t1 = Table('t1', m,
+ Column('id', Integer, primary_key=True)
+ )
+ t2 = Table('t2', m,
+ Column('t1id', Integer, ForeignKey('t1.id'), ForeignKey('t1.id'))
+ )
+
+ assert sql_util.join_condition(t1, t2).compare(t1.c.id == t2.c.t1id)
def test_join_cond_no_such_unrelated_table(self):
m = MetaData()