PgSQL.py 2.5.1 uses int() to parse the time part of a postgres interval string. When the seconds part contains a decimal, int() will throw a ValueError.
The attached patch just discards the decimal part, since mx.DateTime.RelativeTime stores seconds as an integer.
Patch to pyPgSQL-2.5.1 PgSQL.py
Logged In: YES
user_id=203927
Originator: YES
To be clear, here's a simple example that demonstrates the bug.
We assume Db credentials are in the environment:
from pyPgSQL import PgSQL
db = PgSQL.connect()
cur = db.cursor()
cur.execute("select interval '2 years 3 days 12:34:56.78'")
cur.fetchall()