Oleg Broytmann wrote:
> On Tue, Jul 17, 2007 at 10:02:09PM -0700, Andy Grover wrote:
>> Yes indeed.
>>
>> So, add _sig_suppress as an instance variable, initialized to False?
> 
>    The simplest solution would be
> 
>>>> +        if not self.sqlmeta._creating and not getattr(self.sqlmeta, 
>>>> "_sig_suppress", False):

-        if not self.sqlmeta._creating:
+        if not self.sqlmeta._creating and not getattr(self.sqlmeta,
"row_update_sig_suppress", False):

I think we also need this change in _SO_setvalue.

It seems that it is possible to have _SO_setvalue end up calling itself.
This can happen if using a RowUpdateSignal causes setvalue to call set()
(main.py line 1067).

Then, set() will call _SO_setvalue for all columns not in
sqlmeta._PlainSetters (main.py line 1127). This will generate a
duplicate RowUpdateSignal, unless _SO_setvalue also checks
row_update_sig_suppress.

(BTW I am using RowUpdateSignal to create entries in a changelog table,
which is why its important to me to only call the signal once :-)

Thanks -- Regards -- Andy


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to