It looks like an exception is occurring, which SQLAlchemy has caught
and is now trying to roll back the transaction before re-raising the
initial exception. However, a second exception has occurred during the
rollback, so you can no longer see the original exception.

The second exception looks like a possible bug in the pg8000 driver,
where it's trying to send a rollback command without an actual
connection to the database.

In order to find the original exception, perhaps you could start by
putting some print statements in the _handle_dbapi_exception method:

https://bitbucket.org/zzzeek/sqlalchemy/src/3873d7db340835a38e6b191e8466fb42c3a9d3f6/lib/sqlalchemy/engine/base.py?at=master&fileviewer=file-view-default#base.py-1235

Hope that helps,

Simon

On Tue, Aug 2, 2016 at 4:11 AM, Nikhil S Menon <[email protected]> wrote:
> If the datatype of in database is Varchar its working fine, error comes only
> with integer. Any help here is highly appreciated.
>
> Best Regards,
> Nikhil
>
>
> On Sunday, 31 July 2016 22:28:27 UTC+5:30, Nikhil S Menon wrote:
>>
>> i am using SQLAlchemy-1.0.5.
>>
>>
>> i have an external db with a table having integer. while i run the select
>> query i am getting below error.
>>
>> File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 914, in execute
>>     return meth(self, multiparams, params)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py",
>> line 323, in _execute_on_connection
>>     return connection._execute_clauseelement(self, multiparams, params)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 1010, in _execute_clauseelement
>>     compiled_sql, distilled_params
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 1146, in _execute_context
>>     context)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 1334, in _handle_dbapi_exception
>>     self._autorollback()
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 791, in _autorollback
>>     self._root._rollback_impl()
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 670, in _rollback_impl
>>     self._handle_dbapi_exception(e, None, None, None, None)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 1266, in _handle_dbapi_exception
>>     exc_info
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py",
>> line 202, in raise_from_cause
>>     reraise(type(exception), exception, tb=exc_tb, cause=cause)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py",
>> line 668, in _rollback_impl
>>     self.engine.dialect.do_rollback(self.connection)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py",
>> line 420, in do_rollback
>>     dbapi_connection.rollback()
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/pg8000/core.py", line
>> 1751, in rollback
>>     self.execute(self._cursor, "rollback", None)
>>   File
>> "/home/nfs/nikhil/local/lib/python2.7/site-packages/pg8000/core.py", line
>> 2016, in execute
>>     self._flush()
>>   File "/usr/lib/python2.7/socket.py", line 303, in flush
>>     self._sock.sendall(view[write_offset:write_offset+buffer_size])
>> sqlalchemy.exc.DBAPIError: (exceptions.AttributeError) 'NoneType' object
>> has no attribute 'sendall'
>> No handlers could be found for logger "sqlalchemy.pool.QueuePool"
>>
>>
>> sqlalchemy.exc.DBAPIError: (exceptions.AttributeError) 'NoneType' object
>> has no attribute 'sendall'
>>
>>
>> from sqlalchemy import *
>> def connect_db(db):
>>
>> engine=create_engine('postgresql+pg8000://[email protected]:5432/%s'%db)
>>     return engine
>>
>> def load_table(table_name):
>>     table_data = Table(table_name, m, autoload=True, autoload_with=engine)
>>     return table_data
>>
>> def get_all_tables_data():
>>     m.reflect(bind=engine)
>>     for table in m.tables:
>>         print "%s\n---------\n"%table
>>         table_data = load_table(table)
>>         q = select([table_data])
>>         print q
>>         res = conn.execute(q)
>>         for row in res:
>>             print row
>> engine = connect_db("db")
>> m = MetaData(engine)
>> conn = engine.connect()
>> get_all_tables_data()
>>
>>
>> Its happening with external database only when I use the sqlalchemy
>> library in python.  If i use postgres shell its working. Please find below
>> details from postgres interface.
>>
>> db=# \d mas_license;
>>            Table "public.mas_license"
>>      Column     |       Type        | Modifiers
>> ----------------+-------------------+-----------
>>  id             | character varying | not null
>>  node_id        | character varying |
>>  rpt_sampletime | bigint            |
>>  max_vips       | character varying |
>>  pooled_lic     | integer           |
>>  cpx_lic        | integer           |
>>  perf           | integer           |
>>  snmp_traps     | integer           |
>>  syslog         | integer           |
>>  analytics      | integer           |
>>  adv_analytics  | integer           |
>> Indexes:
>>     "mas_license_pkey" PRIMARY KEY, btree (id)
>>
>> =# select * from mas_license;
>>                   id                  | node_id | rpt_sampletime |
>> max_vips                             | pooled_lic | cpx_lic | perf |
>> snmp_traps | syslog | analytics | adv_analytics
>>
>> --------------------------------------+---------+----------------+------------------------------------------------------------------+------------+---------+------+------------+--------+-----------+---------------
>>  5-34 |         |     1469625865 | f6f6-34437c |          1 |       1 |
>> 3 |          3 |      3 |         3 |             1
>> (1 row)
>>
>> Using pgxl as external database.
>>
>>
>> Best Regards,
>> Nikhil
>
> --
> 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.

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