Hi,

Those changes fixed it!  It's a pretty minor issue, but would it make
sense for SA to log a warning when you try to use begin_nested() in a
scenario that doesn't support it?

Also, is the 'threadlocal' mode likely ever to support
begin_nested()?  I'm not sure I really will end up needing it, but I
was thinking I might need to mix in some 'implicit session' type code
at some point.

Thanks,

-- Jacob

On May 14, 1:12 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
> two problems:
>
> 1. the "threadlocal" mode, not a widely used option, currently does  
> not support begin_nested() (which is somewhat of a surprise to me)
> 2. the inner() method issues no SQL.  add a "sess.flush()" in there,  
> and do away with "threadlocal" to see it work.
>
> On May 14, 2008, at 3:45 PM, Jacob Gabrielson wrote:
>
> > from sqlalchemy import *
> > from sqlalchemy.orm import *
>
> > engine = create_engine('mysql://[EMAIL PROTECTED]/test', echo=True,
> > strategy='threadlocal')
> > meta = MetaData()
> > meta.bind = engine
>
> > test_table = Table('test_table', meta,
> >                   Column('test_id', Integer, primary_key=True),
> >                   Column('name', String(40)),
> >                   mysql_engine='InnoDB')
>
> > meta.create_all()
>
> > class MyTest(object):
> >    def __init__(self, test_name):
> >        self.name = test_name
>
> > mapper(MyTest, test_table)
>
> > Session = sessionmaker(transactional=False, autoflush=True,
> > bind=engine)
>
> > def doit():
> >    sess = Session(transactional=False)
> >    sess.begin()
>
> >    t = MyTest("outer")
> >    sess.save(t)
> >    sess.flush()
>
> >    def inner():
> >        sess.begin_nested()
> >        t2 = MyTest("inner")
> >        sess.save(t2)
> >        sess.rollback()
>
> >    inner()
>
> >    sess.commit()
>
> > if __name__ == '__main__':
> >    doit()
--~--~---------~--~----~------------~-------~--~----~
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