On Nov 12, 2007, at 2:07 PM, [EMAIL PROTECTED] wrote:
>
> hi
> 1st one: i am saving some object; the mapperExtension of the object
> fires additional atomic updates of other things elsewhere
> (aggregator).
> These things has to be expired/refreshed... if i only knew them.
> For certain cases, the object knows exactly which are these target
> things. How (when) is best to expire these instances, i.e. assure that
> nexttime they are used they will be re-fetched?
> a) in the mapperext - this would be before the flush?
> b) later, after flush, marking them somehow ?
the "public" way to mark an instance as expired is
session.expire(instance). if you wanted to do this inside the mapper
extension, i think its OK as long as you do the expire *after* the
object has been inserted/updated (i.e. in after_insert() or
after_update()).
We also have the capability to mark any group of attributes as
expired. however I havent gotten around to building a nice public API
for that, though i can show you the non-public way if you want to play
with it. This API is used by the mapper after it saves your instance
to mark attribues which require a post-fetch.
What I'd like to do, and this has been frustrating me a bit, is to
bring the "expire the whole instance", "expire a group of attributes",
"reload a group of attributes", and "reload an instance" under one
implementation umbrella - right now theres some repetition in there
among Mapper, Query._get() and DeferredColumnLoader. I've sort of
wanted to address the whole thing at once.
>
>
> and, why atomic updates also have with commit after them? or is this
> sqlite-specific?
every CRUD operation requires a commit. DBAPI is always inside of a
transaction.
>
>
> 2nd one: how to compare with a Decimal? i.e. tableA.c.column ==
> Decimal('7')
> ah forget, i found that, passing asdecimal =True to column's
> Numeric()
> definition.
>
> btw, the precision/length arguments of Numeric seems misplaced??
> isnt format 10.2 meaning length 10 precision 2?
> or the meaning of "length" and "precision" is different here?
i think someone posted a ticket to change our terminology to
"precision/scale". ive *no* idea how the word "length" got in there,
it was probably me very early on but I cant find any document anywhere
that might have suggested to me that its called "length".
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---