ahha. so i am replacing one whole subexpr with somthing, and the original subexpr is not traversed inside. if i comment the stop_on.add(), it attempts to traverse the result subexpr, not the original one. i want the original to be traversed. Something like doing onExit instead of current onEntry. if its too hard, i can probably traverse it twice, once just marking , 2nd time replaceing things? i'll try
On Wednesday 07 November 2007 20:02:05 svilen wrote: > On Wednesday 07 November 2007 19:33:22 Michael Bayer wrote: > > oh....youre *extending* abstractclauseprocessor ??? > > > > well yes, thats > > going to change things quite a bit. I think you should study ACP > > in its current form; what its doing now is faithfully calling > > convert_element() for *every* element in the expression, and also > > is not copying any elements before calling convert_element() - > > convert_element() always gets components from the original clause > > only. if convert_element() returns non-None, the resulting > > element is assembled into the output, and traversal *stops* for > > the remainder of that element. this is different behavior than > > it was before. the reason it stops for a replaced element is > > because its assumed that the replacement value is not part of the > > expression which is being copied, and therefore should not be > > copied or processed itself. if its that second part of the > > behavior thats breaking it for you, we can add an option to > > switch it off (comment out line 156, stop_on.add(newelem) to > > produce this). > > this did not change things, the column is still not traversed. > maybe something else also has to be changed. > > i want a copy of original expression, where certain things are > replaced by my things, and no need to go inside them - so this > stop_on as u describe is okay... unless: what u mean remainder? > that the returned element is not further traversed (thats ok), or > the parent of that element is not traversed anymore (not ok)? > > > this new version of ACP can locate things besides just plain > > Table, Alias and Column objects; it can locate things like Joins > > embedded in a clause which match the target selectable. > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---