Thanks, Mike.

On Thursday, March 27, 2014 3:16:27 PM UTC-4, Michael Bayer wrote:

...
 

> OK, you seem to have found the autocommit flag on text(), this is the 
> correct approach in this case.
>
> I can’t get your stored proc to run as creating a proc on my machine 
> produces some “thread stack overrun” error I don’t have the time to figure 
> out, but a simple test of just a SELECT with autocommit=True illustrates 
> the COMMIT being called in the log:
>
>
...
 

> can’t reproduce - test script:
>
> from sqlalchemy import *
>
> e = create_engine("mysql://scott:tiger@localhost/test", 
> echo=True).execution_options(autocommit=True)
>
> r = e.execute(text('SELECT 1’))
>
> output, includes the COMMIT as expected:
>
> 2014-03-27 15:11:14,324 INFO sqlalchemy.engine.base.OptionEngine SELECT 1
> 2014-03-27 15:11:14,324 INFO sqlalchemy.engine.base.OptionEngine ()
> 2014-03-27 15:11:14,324 INFO sqlalchemy.engine.base.OptionEngine COMMIT
>
>
...
 

> In your case, you should use a simple MySQL-python script first, get the 
> SP to run and commit, without any “out of sync” messages.   I think that is 
> the actual problem you’re having.
>
>
>
A "SELECT @@AUTOCOMMIT" had the same result. However, the same query using 
the standard library, along with a call to autocommit(), worked exactly as 
expected. I should've mentioned that I'm calling into Amazon [RDS].

Let:

query = 'SELECT @@AUTOCOMMIT'

dsn = '<DSN string>'


SQLAlchemy code:

def alchemy_test():
    e = create_engine(dsn, echo=True)

    Session = sessionmaker()
    Session.configure(bind=e)
    session = Session()

    r = session.execute(text(query, autocommit=True))
    print(list(r))


Result:

2014-03-27 17:47:16,215 INFO sqlalchemy.engine.base.Engine SELECT DATABASE()
2014-03-27 17:47:16,215 INFO sqlalchemy.engine.base.Engine ()
2014-03-27 17:47:16,548 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES 
LIKE 'character_set%%'
2014-03-27 17:47:16,548 INFO sqlalchemy.engine.base.Engine ()
2014-03-27 17:47:16,604 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES 
LIKE 'sql_mode'
2014-03-27 17:47:16,604 INFO sqlalchemy.engine.base.Engine ()
2014-03-27 17:47:16,670 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2014-03-27 17:47:16,670 INFO sqlalchemy.engine.base.Engine SELECT 
@@AUTOCOMMIT
2014-03-27 17:47:16,670 INFO sqlalchemy.engine.base.Engine ()
[(0L,)]


Direct example:

def direct_test():
    import MySQLdb
    conn = MySQLdb.connect(host='db.host.com', user='abc', passwd="def", 
db="ghi", port=3307)

    conn.autocommit(True)

    c = conn.cursor()
    c.execute(query)

    print(c.fetchone())


Result:

(1L,)

Any idea why SA is falling down on this?


Dustin

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to