Traceback (most recent call last):
File "/Users/Sandro/projects/dummy/main.py", line 10, in <module>
main()
File "/Users/Sandro/projects/dummy/main.py", line 27, in main
connection.execute("INSERT INTO mytable (user_id) VALUES (:p1)", p1="user1")
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 976, in execute
return self._execute_text(object_, multiparams, params)
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1151, in _execute_text
parameters,
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1288, in _execute_context
e, statement, parameters, cursor, context
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1482, in _handle_dbapi_exception
sqlalchemy_exception, with_traceback=exc_info[2], from_=e
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
raise exception
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
cursor, statement, parameters, context
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
cursor.execute(statement, parameters)
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/pg8000/core.py", line 865, in execute
self._c.execute(self, operation, args)
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/pg8000/core.py", line 1849, in execute
self.handle_messages(cursor)
File "/Users/Sandro/anaconda3/envs/dummy/lib/python3.6/site-packages/pg8000/core.py", line 1988, in handle_messages
raise self.error
sqlalchemy.exc.ProgrammingError: (pg8000.core.ProgrammingError) {'S': 'ERROR', 'V': 'ERROR', 'C': '42601', 'M': 'syntax error at or near ":"', 'P': '39', 'F': 'scan.l', 'L': '1128', 'R': 'scanner_yyerror'}
[SQL: INSERT INTO mytable (user_id) VALUES (:p1)]
[parameters: {'p1': 'user1'}]
(Background on this error at: http://sqlalche.me/e/f405)
Bug description
When executing a raw sql statement using connection.execute(..) the specified paramstyle in create_engine(..) is not propagated to pg8000. In turn, the parameters cannot be resolved correctly and the sql statement fails. When I manually debug and override the cursor.paramstyle parameter to e.g. 'named' it works as expected.
To Reproduce
Execute following code reproduces the error.
The schema I used was the following:
CREATE TABLE mytable( user_id VARCHAR(30) );Error
Versions.