OverflowError in pyPgSQL when accessing tables with many rows

Billy G. Allie bill.allie at mug.org
Sat Jun 28 22:17:23 CEST 2003


Paolo Alexis Falcone wrote:

>Whenever I try to access a table with many rows using PgSQL's
>fetchall(), this happens:
>  
>
>>>>from pyPgSQL import PgSQL
>>>>db = PgSQL.connect("192.168.0.8:5432:whitegold","dondon","dondon")
>>>>PgSQL.NoPostgresCursor = 1
>>>>cur = db.cursor()
>>>>cur.execute("SELECT * FROM customer")
>>>>data = cur.fetchall()
>>>>        
>>>>
>Traceback (most recent call last):
>  File "<stdin>", line 1, in ?
>  File "/usr/lib/python2.2/site-packages/pyPgSQL/PgSQL.py", line 3106,
>in fetchall
>    return self.__fetchManyRows(self._rows_, _list)
>  File "/usr/lib/python2.2/site-packages/pyPgSQL/PgSQL.py", line 2684,
>in __fetchManyRows
>    _j = self.__fetchOneRow()
>  File "/usr/lib/python2.2/site-packages/pyPgSQL/PgSQL.py", line 2660,
>in __fetchOneRow
>    _r.getvalue(self._idx_, _i)))
>  File "/usr/lib/python2.2/site-packages/pyPgSQL/PgSQL.py", line 717,
>in typecast
>    return PgNumeric(value, _p, _s)
>  File "/usr/lib/python2.2/site-packages/pyPgSQL/PgSQL.py", line 1335,
>in __init__
>    raise OverflowError, "value too large for PgNumeric"
>OverflowError: value too large for PgNumeric
>
>The aforementioned table, customer, only has 1023 entries with the
>following structure:
>
>CREATE TABLE customer (ccustcode varchar(80), cgroupcode varchar(10),
>clastname varchar(80), cfirstname     varchar(80), cmi varchar(10),
>ccompany varchar(80), caddress1 varchar(80), caddress2 varchar(80),
>ccity varchar(80), cprovince varchar(80), czipcode varchar(10), iterms
>integer, ycredit_limit numeric, npenalty_rate numeric,
>default_routecode varchar(10), lisdirector boolean);
>
>PgSQL's fetchone() fortunately works though, as well as using
>fetchall() on tables with few rows. Is there any alternative way of
>using PyPgSQL that would not overflow in this situation?
>
Paolo,

The problem is not the number of rows, but the fact the conversion of a 
PostgreSQL numeric to a PgNumeric is failing.  This problem has been 
fixed in the code in the CVS repository  for the  pyPgSQL project 
<http://sourceforge.net/cvs/?group_id=16528> on SourceForge.  We will 
also be releaseing a new version of pyPgSQL within the next couple of weeks.

-- 
___________________________________________________________________________
____       | Billy G. Allie    | Domain....: Bill.Allie at mug.org
|  /|      | 7436 Hartwell     | MSN.......: B_G_Allie at email.msn.com
|-/-|----- | Dearborn, MI 48126|
|/  |LLIE  | (313) 582-1540    |

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20030628/52281570/attachment.html>


More information about the Python-list mailing list