[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