Hi,
I've upgraded SQLAlchemy from 1.0.18 to latest 1.2.8 and I get errors that
_exec_default() received wrong number of parameters. I've pinpointed that
problem appears since version 1.2.0b3.
Looks like inside method get_insert_default
https://github.com/zzzeek/sqlalchemy/blob/rel_1_2/lib/sqlalchemy/engine/default.py#L1283
the *self._exec_default *is not actually method
of sqlalchemy.engine.default.DefaultExecutionContext.
Any ideas what is going on?
Traceback:
2018-05-30 21:24:38,977 ERROR [waitress] (exceptions.TypeError)
_exec_default() takes exactly 3 arguments (4 given) [SQL: u'INSERT INTO
timesheet (user_id, project_id, date) VALUES (?, ?, ?)'] [parameters: [{u
'project_id': 1, u'user_id': 1}]]
Traceback (most recent call last):
File "/home/mike/projects/slashdb/slashdb/utils.py", line 430, in
func_wrapper
return func(*args, **kwargs)
File "/home/mike/projects/slashdb/slashdb/data_discovery_views.py", line
90, in post_view
locations = data_proxy.create(create_data)
File
"/home/mike/projects/slashdb/slashdb/models/sqlalchemy_sdb/dataproxy.py",
line 415, in create
self._add_all(new_resources)
File "/home/mike/projects/slashdb/slashdb/models/sqlalchemy_sdb/utils.py",
line 32, in wrapper
return dataproxy_method(dataproxy, *args, **kwargs)
File
"/home/mike/projects/slashdb/slashdb/models/sqlalchemy_sdb/dataproxy.py",
line 399, in _add_all
self.db_session.flush()
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/session.py"
, line 2254, in flush
self._flush(objects)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/session.py"
, line 2380, in _flush
transaction.rollback(_capture_exception=True)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py"
, line 66, in __exit__
compat.reraise(exc_type, exc_value, exc_tb)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/session.py"
, line 2344, in _flush
flush_context.execute()
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py"
, line 391, in execute
rec.execute(self)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py"
, line 556, in execute
uow
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py"
, line 181, in save_obj
mapper, table, insert)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py"
, line 866, in _emit_insert_statements
execute(statement, params)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/base.py"
, line 948, in execute
return meth(self, multiparams, params)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/sql/elements.py"
, line 269, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/base.py"
, line 1060, in _execute_clauseelement
compiled_sql, distilled_params
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/base.py"
, line 1132, in _execute_context
None, None)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/base.py"
, line 1413, in _handle_dbapi_exception
exc_info
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/util/compat.py"
, line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/base.py"
, line 1127, in _execute_context
context = constructor(dialect, self, conn, *args)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/default.py"
, line 650, in _init_compiled
self._process_executesingle_defaults()
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/default.py"
, line 1342, in _process_executesingle_defaults
val = self.get_insert_default(c)
File
"/home/mike/envs/slashdb/lib/python2.7/site-packages/sqlalchemy/engine/default.py"
, line 1287, in get_insert_default
return self._exec_default(column, column.default, column.type)
StatementError: (exceptions.TypeError) _exec_default() takes exactly 3
arguments (4 given) [SQL: u'INSERT INTO timesheet (user_id, project_id,
date) VALUES (?, ?, ?)'] [parameters: [{u'project_id': 1, u'user_id': 1}]]
Python 2.7.13
pip freeze
atomicwrites==1.1.5
attrs==18.1.0
backports.functools-lru-cache==1.5
beautifulsoup4==4.6.0
funcsigs==1.0.2
hupper==1.3
ibm-db==2.0.8
ibm-db-sa==0.3.3
lxml==4.2.1
Mako==1.0.7
MarkupSafe==1.0
mock==2.0.0
more-itertools==4.2.0
MySQL-python==1.2.5
nose==1.3.7
passlib==1.7.1
Paste==2.0.3
PasteDeploy==1.5.2
PasteScript==2.0.2
pbr==4.0.3
plaster==1.0
plaster-pastedeploy==0.5
pluggy==0.6.0
portalocker==1.2.1
psycopg2==2.7.4
py==1.5.3
pyodbc==4.0.23
pyramid==1.9.2
pyramid-exclog==1.0
pyramid-mako==1.0.2
pyramid-multiauth==0.9.0
pytest==3.6.0
python-dateutil==2.7.3
python-memcached==1.59
PyYAML==3.12
repoze.lru==0.7
simplejson==3.15.0
six==1.11.0
SQLAlchemy==1.2.0b3
testfixtures==6.0.2
translationstring==1.3
uWSGI==2.0.17
venusian==1.1.0
waitress==1.1.0
WebOb==1.8.1
WebTest==2.0.18
wsgicors==0.7.0
yolk==0.4.3
zope.deprecation==4.3.0
zope.interface==4.5.0
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.