because SQLAlchemy has something like 98% code coverge and tens of
thousands of tests, it is very unusual for you to have such a stack
trace so no I don't know what's going on, I rely upon test coverage to
prevent cases like these.  if this method doesn't work under
postgresql then it's usually the case that the method never gets
called under normal use cases (like the thousands we're testing), so I
need to see if you are doing something unusual or unexpected.

So can you please provide:

1. database in use / driver, I assume are postgresql / psycopg2?

2. example models/tables

3. example invocation (eg. the INSERT statement or the ORM thing you are doing)

4. preferably with a full MCVE and posted as an issue to
https://bitbucket.org/zzzeek/sqlalchemy/issues/new, or you can add it
here, thanks!



On Wed, May 30, 2018 at 4:38 PM, mdob <[email protected]> wrote:
> 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.

-- 
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.

Reply via email to