[EMAIL PROTECTED] wrote:
> some comments...
>
> - u can at least get that 'if...mysql' out of the actual code, just
> define a global if_func( usualargs, aggregator=None) and do swicthing
> inside there. Or, better, define the if_func() as method on the
> aggregator itself (that is, the mapperExtension?) thus separating
> somewhat implementation from usage.
>
Moved min and max to the aggregator. I woder if I can cache
database type in MapperExtension, or it can be changed
sometimes (e.g. ".tometadata()", or metadata.bind = eng) ?
> - Max.onupdate will recurse forever in the else:
>
Fixed
> - the min/max has to be redone not to use maxint (or any other
> machine/value limit) - one 'if' more..
>
Fixed with max(ifnull(a, b-1), b). Should be ok. There is no
"IF" in sqlite.
> - why returning a dict if it never contains more than 1 value?
> it clutters your code a lot... maybe 'return something' or None (or
> raise something) would be better.. eventualy making some generic
> updater like:
>
> def do_updates( self, instance, table, fields, method, condition):
> updates = {}
> for f in fields:
> r = getattr( f, method)( self, instance)
> if r is not None: updates[ f.target.name] = r
> table.update( condition, values=updates).execute()
>
Were done with average() in mind, which needs to update 2 fields.
Above solution don't work for that. I thought about passing
dict and allow mutating it, or yielding key,value pairs, but that
whould do even more cluttered code.
> ah, nevermind.
Thanks for great review!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---