mysql raw python bind param support differs in MySQLDB versions

Issue #556 resolved
jek created an issue

the {{{ExecuteTest.test_raw_python --db=mysql}}} test works in MySQLDB 1.2.2b2 but not the final 1.2.2:

1.2.2b2:
test_raw_python (__main__.ExecuteTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.039s

1.2.2:
test_raw_python (__main__.ExecuteTest) ... ERROR

======================================================================
ERROR: test_raw_python (__main__.ExecuteTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/engine/execute.py", line 52, in test_raw_python
    conn.execute("insert into users (user_id, user_name) values (%(id)s, %(name)s)", {'id':2, 'name':'ed'}, {'id':3, 'name':'horse'})
  File "./lib/sqlalchemy/engine/base.py", line 767, in execute
    return connection.execute(statement, *multiparams, **params)
  File "./lib/sqlalchemy/engine/base.py", line 512, in execute
    return Connection.executors[c](c)(self, object, *multiparams, **params)
  File "./lib/sqlalchemy/engine/base.py", line 527, in execute_text
    self._execute_raw(context)
  File "./lib/sqlalchemy/engine/base.py", line 574, in _execute_raw
    self._executemany(context)
  File "./lib/sqlalchemy/engine/base.py", line 606, in _executemany
    raise exceptions.SQLError(context.statement, context.parameters, e)
SQLError: (ValueError) incomplete format 'insert into users (user_id, user_name) values (%(id)s, %(name)s)' [2, 'name': 'ed'}, {'id': 3, 'name': 'horse'}]({'id':)

Comments (2)

  1. Log in to comment