yeah there's not really enough detail here to produce an explanation, you'd 
need to narrow it down into a self-contained test case.

On Jan 9, 2011, at 1:45 AM, Romy wrote:

> I believe it's both mapped and present in the session -- the log
> output seems to confirm it:
> 
> [I 110108 22:40:30 base:1075] BEGIN
> [I 110108 22:40:30 base:1390] UPDATE invite_codes SET used=%s WHERE
> invite_codes.id = %s
> [I 110108 22:40:30 base:1391] (1L, 100L)
> [I 110108 22:40:30 base:1390] INSERT INTO users (username, email,
> password, verified, usertype_id, invite_code_id, created,
> invites_left) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
> [I 110108 22:40:30 base:1391] (u'blah', u'a...@b.com', '<snip>', False,
> 1L, 100L, datetime.datetime(2011, 1, 9, 6, 40, 30, 808683), 5)
> [I 110108 22:40:30 base:1086] ROLLBACK
> 
> The update's part of the transaction above, but it doesn't get rolled
> back.. scratching my head here.
> 
> On Jan 8, 8:20 am, Michael Bayer <mike...@zzzcomputing.com> wrote:
>> The "rollback" of attributes is actually an expiration of all mapped 
>> attributes.    So "used" would need to be a mapped column for its value to 
>> be "rolled back".   Other than that, "invite_code" would need to be present 
>> in "elixir.session" for that to work, if something is causing that not to be 
>> the case, that would also exclude it from the expiry.
>> 
>> On Jan 8, 2011, at 1:23 AM, Romy wrote:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> This may or may not be specific to SQLAlchemy (rather than elixir),
>>> but I figured I'd ask seeing as how this list is much more active. I'm
>>> experiencing only a partial rollback in the following code --
>>> invite_code gets incremented even when the exception is caught and
>>> session rolled back. When I switch the two lines after begin(), this
>>> goes away. I'm using autocommit=True, sqlalchemy 0.6.4.
>> 
>>> ---------------------------------------------------
>>> invite_code =
>>> InviteCode.query.filter_by(code=code).first()
>> 
>>> elixir.session.begin()
>>> user = User(...)
>>> invite_code.used = invite_code.used +
>>> 1
>> 
>>> try:
>> 
>>> elixir.session.commit()
>>> except
>>> IntegrityError:
>>>  # Thrown on duplicate email
>>> address
>> 
>>> elixir.session.rollback()
>> 
>>> return
>>> ---------------------------------------------------
>> 
>>> Cheers!
>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "sqlalchemy" group.
>>> To post to this group, send email to sqlalch...@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> sqlalchemy+unsubscr...@googlegroups.com.
>>> For more options, visit this group 
>>> athttp://groups.google.com/group/sqlalchemy?hl=en.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@googlegroups.com.
> To unsubscribe from this group, send email to 
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to