> heres the structure of: select(from_obj=[t1, t2, t1.join(t2)]) > > select +---> t1 <-------------+ > |---> t2 <------------| > +---> join of t1/t2 ---+ > > t2 and t1 both have two parents, and there are two paths to each of t1 > and t2 from the head select. so its not a tree in the strict sense. > > or another one: > > s1 = t1.select().alias('s1') > s2 = t1.select().alias('s2') > > s3 = s1.union(s2) (two paths to t1: s3->s1->t1, s3->s2->t1) > > any kind of subquery which references a table at a higher level falls > into this category. > hmm. it's still a tree, just the nodes contain same things (t1). There are no cyclic paths to _same_ node in the expression. like x+y+23*(x+1) --- x is used/pointed twice but the expression is still a tree.
is there any case where some t1 (or even subexpr) is translated once in one way, and then in another branch in another way? e.g. like in the above x+y+... first x is to be replaced with its value, but second with its name (say because its in round brackets - in some now-invented syntax of mine ). i think there is some mixup between what the expression is, as grammar, and what it actualy means, and u're trying to solve/combine both in one thing/visitor. maybe also what it should mean _after the processing. While they should be all separate notions, somehow. eh, i'm just throwing ideas / alternative view points to play with... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---