]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
when creating lazy clause both sides of each clause must be Column
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 21 Feb 2006 03:01:43 +0000 (03:01 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 21 Feb 2006 03:01:43 +0000 (03:01 +0000)
lib/sqlalchemy/mapping/properties.py

index 036dfe4400a173c4b2bbd5eb4d94780fe6f40ae3..f22a01cdbd747963f288e9103a3d6a64f59b5030 100644 (file)
@@ -716,12 +716,12 @@ def create_lazy_clause(table, primaryjoin, secondaryjoin, foreignkey):
     binds = {}
     def visit_binary(binary):
         circular = isinstance(binary.left, schema.Column) and isinstance(binary.right, schema.Column) and binary.left.table is binary.right.table
-        if isinstance(binary.left, schema.Column) and ((not circular and binary.left.table is table) or (circular and binary.right is foreignkey)):
+        if isinstance(binary.left, schema.Column) and isinstance(binary.right, schema.Column) and ((not circular and binary.left.table is table) or (circular and binary.right is foreignkey)):
             binary.left = binds.setdefault(binary.left,
                     sql.BindParamClause(binary.right.table.name + "_" + binary.right.name, None, shortname = binary.left.name))
             binary.swap()
 
-        if isinstance(binary.right, schema.Column) and ((not circular and binary.right.table is table) or (circular and binary.left is foreignkey)):
+        if isinstance(binary.right, schema.Column) and isinstance(binary.left, schema.Column) and ((not circular and binary.right.table is table) or (circular and binary.left is foreignkey)):
             binary.right = binds.setdefault(binary.right,
                     sql.BindParamClause(binary.left.table.name + "_" + binary.left.name, None, shortname = binary.right.name))