[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