[pypy-svn] r69429 - in pypy/trunk/pypy/module/oracle: . test

afa at codespeak.net afa at codespeak.net
Thu Nov 19 11:28:12 CET 2009


Author: afa
Date: Thu Nov 19 11:28:11 2009
New Revision: 69429

Modified:
   pypy/trunk/pypy/module/oracle/interp_variable.py
   pypy/trunk/pypy/module/oracle/test/test_datetimevar.py
Log:
Fix for arrays of dates


Modified: pypy/trunk/pypy/module/oracle/interp_variable.py
==============================================================================
--- pypy/trunk/pypy/module/oracle/interp_variable.py	(original)
+++ pypy/trunk/pypy/module/oracle/interp_variable.py	Thu Nov 19 11:28:11 2009
@@ -732,7 +732,6 @@
         dataptr = rffi.ptradd(
             rffi.cast(roci.Ptr(roci.OCIDate), self.data),
             pos)
-        dataptr = rffi.cast(roci.Ptr(roci.OCIDate), self.data)
         return transform.OracleDateToPythonDateTime(self.environment, dataptr)
 
     def setValueProc(self, space, pos, w_value):
@@ -757,7 +756,8 @@
                 space.wrap("expecting date data"))
 
         # store a copy of the value
-        timePart = dataptr[0].c_OCIDateTime
+        value = dataptr[0]
+        timePart = value.c_OCIDateTime
         rffi.setintfield(timePart, 'c_OCITimeHH', hour)
         rffi.setintfield(timePart, 'c_OCITimeMI', minute)
         rffi.setintfield(timePart, 'c_OCITimeSS', second)

Modified: pypy/trunk/pypy/module/oracle/test/test_datetimevar.py
==============================================================================
--- pypy/trunk/pypy/module/oracle/test/test_datetimevar.py	(original)
+++ pypy/trunk/pypy/module/oracle/test/test_datetimevar.py	Thu Nov 19 11:28:11 2009
@@ -14,7 +14,27 @@
         import datetime
         cur = self.cnx.cursor()
         cur.execute("select to_char(:d, 'YYYYMMDD-HH24MISS') from dual",
-                    d=datetime.date(2002, 12, 13))
+                    d=oracle.Date(2002, 12, 13))
         data = cur.fetchall()
         assert data == [('20021213-000000',)]
 
+    def test_variable(self):
+        import datetime
+        cur = self.cnx.cursor()
+        var = cur.var(oracle.DATETIME)
+        value = datetime.datetime(2002, 12, 13, 9, 36, 15)
+        var.setvalue(0, value)
+        assert var.getvalue() == value
+
+        value = datetime.date(2002, 12, 13)
+        var.setvalue(0, value)
+        assert var.getvalue() == datetime.datetime(2002, 12, 13)
+
+    def test_arrayvar(self):
+        import datetime
+        cur = self.cnx.cursor()
+        var = cur.arrayvar(oracle.DATETIME, 2)
+        values = [datetime.datetime(2002, 12, 13, 9, 36, 15),
+                  datetime.datetime(2003,  7, 22, 4, 24, 32)]
+        var.setvalue(0, values)
+        assert var.getvalue() == values



More information about the Pypy-commit mailing list