[prev in list] [next in list] [prev in thread] [next in thread]
List: python-db-sig
Subject: [PYTHON DB-SIG] Re: New Oracledb module now available
From: Anthony Baxter <arb () connect ! com ! au> (Anthony Baxter)
Date: 1997-03-25 11:15:39
Message-ID: 199703251115.WAA21924 () jambu ! off ! connect ! com ! au
[Download RAW message or body]
>>> I wrote
> Don't suppose you had a chance to look at the
> (d is of type dbiDate)
> if d:
> segfaults? I'm still waiting for our licenses for the Sun debugger to
> turn up so I can pound on this.
Well, here's the fix. It seems that you must define nb_nonzero for
anything with tp_as_number set. Objects/objects.c, line 411 in 1.4 source.
(no, I didn't know about it either)
My fix makes it so a dbiDate object is "true" if it's not 01/01/1970. An
alternate is to simply make it always "true", by make dt_nb_nonzero always
return 1. This is something that's not covered by the DB-SIG API.
Anthony
*** dbi.c.dist Tue Mar 25 21:47:06 1997
--- dbi.c Tue Mar 25 21:58:23 1997
***************
*** 127,132 ****
--- 127,134 ----
{ return delg(a)->nb_add(dbiValue(a),b); }
static PyObject* dt_nb_subtract(PyObject* a, PyObject* b)
{ return delg(a)->nb_subtract(dbiValue(a),b); }
+ static int dt_nb_nonzero(PyObject* a)
+ { return (delg(a)->nb_int(dbiValue(a)) != 0); }
static PyObject* dt_nb_int(PyObject* a)
{ return delg(a)->nb_int(dbiValue(a)); }
static PyObject* dt_nb_long(PyObject* a)
***************
*** 152,158 ****
0, /* nb_negative */
0, /* nb_positive */
0, /* nb_absolute */
! 0, /* nb_nonzero */
0, /* nb_invert */
0, /* nb_lshift */
0, /* nb_rshift */
--- 154,160 ----
0, /* nb_negative */
0, /* nb_positive */
0, /* nb_absolute */
! dt_nb_nonzero, /* nb_nonzero */
0, /* nb_invert */
0, /* nb_lshift */
0, /* nb_rshift */
_______________
DB-SIG - SIG on Tabular Databases in Python
send messages to: db-sig@python.org
administrivia to: db-sig-request@python.org
_______________
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic