On Nov 7, 2007, at 1:02 PM, 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.

the traversal will hit everything except the "external" collections of  
columns on objects since this is usually not needed.  to change this,  
set the "column_collections" attribute to True on the ACP object (or  
in your class, or anywhere).  but the old version had the same option  
turned on so not sure how that would change things.


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to