I had mistaken it for a SQLA flaw, but, from pdb, it appears the
behavior I'm observing is being caused by zope.sqlalchemy.

Thanks for your input.



On Dec 16, 7:19 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> That doesn't sound right.   Session.commit() issues the commit regardless of 
> whether or not flush() had any work to do.   The usage of Session.execute() 
> takes place in the scope of the Session's transaction so work is definitely 
> begun as well.
>
> from sqlalchemy import create_engine
> from sqlalchemy.orm import Session
>
> e = create_engine('sqlite:///test.db', echo=True)
> s = Session(e)
>
> s.execute("CREATE TABLE foo (data VARCHAR)")
> s.execute("INSERT INTO foo (data) VALUES ('data1')")
> s.commit()
> s.close()
>
> e = create_engine('sqlite:///test.db', echo=True)
>
> assert e.execute("SELECT * FROM foo").fetchall() == [('data1',)]
>
> On Dec 16, 2010, at 2:37 PM, Kent wrote:
>
> >  From time to time I find I need or prefer "dropping into SQL" for
> > certain tasks, in the midst of making the majority of my database
> > changes through sqlalchemy's objects; for example, I may use
> > session.execute(sql).
>
> >  I would like these changes to be committed later along with the sqla
> > session objects *if and only if* the session issues a commit.
> > However, I've observed that if the *only* database changes were made
> > via session.execute(), then session.commit() believes there is nothing
> > to commit, so the "commit" isn't issued to the database.
>
> >  Is there a better way to approach what I am trying to accomplish?
> > Is there a way to tell a session "by the way, you have changes that
> > you don't know about, so when it comes time to commit, please do so"?
>
> > Thanks very much, as always,
> > Kent
>
> > --
> > 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.

Reply via email to