python - pg8000 and sqlalchemy query raises an exception but only sometimes -
osame = osession.query(useraction).filter_by(tablename=self.tablename).filter_by(isn=self.isn).filter_by(time_stamp=self.time_stamp).filter_by(command=self.command).filter_by(command_type=self.command_type).filter_by(username=self.username).first()
raises exception:
notsupportederror: type oid 705 not mapped py type the full(ish) traceback included @ end...
so thought utilize process of elimination figure out column beingness weird. came this:
try: osame = osession.query(useraction).filter_by(tablename=self.tablename).filter_by(isn=self.isn).filter_by(time_stamp=self.time_stamp).filter_by(command=self.command).filter_by(command_type=self.command_type).filter_by(username=self.username).first() except: oex = osession.query(useraction).filter_by(tablename=self.tablename).filter_by(isn=self.isn).filter_by(time_stamp=self.time_stamp).filter_by(command=self.command).filter_by(command_type=self.command_type).filter_by(username=self.username).first() raise exception(oex) this raises exception:
exception: <adabas_converter.models.useraction object @ 0x27c7f50> note look used osame same oex! seems madness.
try: do_stuff() <----raises exception except: do_stuff() <----executes fine! so question is: why query execute within except clause not in original code?
also, if swap driver psycopg2 weirdness stops.
original traceback:
file "/home/criticalid/programs/adabas_converter/models.py", line 53, in __init__ osame = osession.query(useraction).filter_by(tablename=self.tablename).filter_by(isn=self.isn).filter_by(time_stamp=self.time_stamp).filter_by(command=self.command).filter_by(command_type=self.command_type).filter_by(username=self.username).first() file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2333, in first ret = list(self[0:1]) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2200, in __getitem__ homecoming list(res) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2404, in __iter__ homecoming self._execute_and_instances(context) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2417, in _execute_and_instances close_with_result=true) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2408, in _connection_from_session **kw) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/session.py", line 843, in connection close_with_result=close_with_result) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/session.py", line 847, in _connection_for_bind homecoming self.transaction._connection_for_bind(engine) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/orm/session.py", line 315, in _connection_for_bind conn = bind.contextual_connect() file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1729, in contextual_connect self.pool.connect(), file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/pool.py", line 332, in connect homecoming _connectionfairy._checkout(self) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/pool.py", line 626, in _checkout fairy = _connectionrecord.checkout(pool) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/pool.py", line 433, in checkout rec = pool._do_get() file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/pool.py", line 945, in _do_get homecoming self._create_connection() file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/pool.py", line 278, in _create_connection homecoming _connectionrecord(self) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/pool.py", line 409, in __init__ exec_once(self.connection, self) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/event/attr.py", line 247, in exec_once self(*args, **kw) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/event/attr.py", line 257, in __call__ fn(*args, **kw) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/util/langhelpers.py", line 1203, in go homecoming once_fn(*arg, **kw) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/strategies.py", line 165, in first_connect dialect.initialize(c) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/dialects/postgresql/base.py", line 1560, in initialize super(pgdialect, self).initialize(connection) file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 250, in initialize self._check_unicode_description(connection): file "/usr/local/lib/python2.7/dist-packages/sqlalchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 335, in _check_unicode_description ]).compile(dialect=self) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/dbapi.py", line 243, in _fn homecoming fn(self, *args, **kwargs) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/dbapi.py", line 314, in execute self._execute(operation, args) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/dbapi.py", line 319, in _execute self.cursor.execute(new_query, *new_args) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/interface.py", line 304, in execute self._stmt.execute(*args, **kwargs) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/interface.py", line 139, in execute self._row_desc, cmd = self.c.bind(self._portal_name, self._statement_name, args, self._parse_row_desc, kwargs.get("stream")) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/protocol.py", line 913, in _fn homecoming fn(self, *args, **kwargs) file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/protocol.py", line 1082, in bind output_fc = [types.py_type_info(f) f in row_desc.fields] file "/usr/local/lib/python2.7/dist-packages/pg8000-1.08-py2.7.egg/pg8000/types.py", line 162, in py_type_info raise notsupportederror("type oid %r not mapped py type" % type_oid) notsupportederror: type oid 705 not mapped py type
from stack trace looks you're using pg8000 version 1.08, latest version pg8000-1.9.10. allow me know if there's still problem after upgrading.
python sqlalchemy pg8000
No comments:
Post a Comment