[Psycopg] [psycopg] #191: ZPsycopgDA fails on selects to interval columns
psycopg
fog at initd.org
Mon Jul 9 23:50:48 CEST 2007
#191: ZPsycopgDA fails on selects to interval columns
----------------------+-----------------------------------------------------
Reporter: jinty | Owner: fog
Type: defect | Status: new
Priority: normal | Milestone: PSYCOPG 2.0.6
Component: psycopg2 | Version: 2.0.5
Severity: normal | Keywords: patch ZPsycopgDA
----------------------+-----------------------------------------------------
Selects on interval columns work fine using straight psycopg2, returning a
datetime.timedelta object. However they fail through ZPsycopgDA like this:
Traceback (most recent call last):
File
"/home/jinty/ext3/src/Z2/2.9/lib/python/zope/testing/doctest.py", line
1348, in __run
compileflags, 1) in test.globs
File "<doctest tokens.txt[9]>", line 1, in ?
token = UserToken.query_token(context, 0)
File
"/home/jinty/ext3/src/Z2/2.9/lib/python/vanguardistas/pguf/token.py", line
62, in query_token
desc, res = conn.query(q, query_data=(id, ))
File
"/home/jinty/ext3/src/Z2/2.9/lib/python/Products/ZPsycopgDA/db.py", line
204, in query
raise err
ValueError: month must be in 1..12
Through voodo programming I found that this path fixes things:
--- ../z2/Products/ZPsycopgDA/DA.py 2006-12-14 10:54:38.000000000
+0100
+++ lib/python/Products/ZPsycopgDA/DA.py 2007-07-08
09:08:58.000000000 +0200
@@ -135,11 +135,13 @@
if self.zdatetime:
# use zope internal datetime routines
register_type(ZDATETIME)
+ register_type(ZINTERVAL)
register_type(ZDATE)
register_type(ZTIME)
else:
# use the standard
register_type(DATETIME)
+ register_type(INTERVAL)
register_type(DATE)
register_type(TIME)
and am using psycopg2 2.0.5.1 and postgres 8.1.8
--
Ticket URL: <http://www.initd.org/tracker/psycopg/ticket/191>
psycopg <http://initd.org/>
psycopg
More information about the Psycopg
mailing list