After upgrading to web2py 2.0, we can no longer use the DAL or mysql adapters to make MySQL stored procedure calls.
In web2py 1.x I had reported<https://groups.google.com/d/msg/web2py/VaGJjwE3eYQ/GPa3xRe-HVsJ>how mysql stored procedures weren't working for us in certain circumstances- however we were able to circumvent those issues by simply creating a new DAL instance everytime we had to call a sproc. With the new DAL, that's no longer an option- indeed, any call to a stored procedure seems to fail in any attempt through the DAL or mysql adapter. - Fails with both pymysql and mysqldb drivers - Fails when calling commit() immediately after - We did side-by-side comparisons with web2py 1.x on same server, pointing to same db, and confirmed this fails only in 2.0 - You can make sproc calls using the DAL straight from the web2py shell, but only if you don't call commit. Stack trace: Traceback (most recent call last): File "/opt/web-apps/web2py/gluon/main.py", line 580, in wsgibase BaseAdapter.close_all_instances('rollback') File "/opt/web-apps/web2py/gluon/dal.py", line 511, in close_all_instances getattr(instance, action)() File "/opt/web-apps/web2py/gluon/dal.py", line 1633, in rollback return self.connection.rollback() ProgrammingError: (2014, "Commands out of sync; you can't run this command now") Right now the only option is to make sproc calls directly through the pymysql driver API. --