aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorD'Arcy J.M. Cain <darcy@druid.net>2001-09-19 18:58:47 +0000
committerD'Arcy J.M. Cain <darcy@druid.net>2001-09-19 18:58:47 +0000
commitae64196acb74ae100a6aafff61fcdc7fe9f29e6f (patch)
tree4bf8fde2ff971d4c5abe321eba1e07552cd35bed
parent9e774ca45e002ee887ee58dd0dfbc285c3ffe24c (diff)
downloadpostgresql-ae64196acb74ae100a6aafff61fcdc7fe9f29e6f.tar.gz
postgresql-ae64196acb74ae100a6aafff61fcdc7fe9f29e6f.zip
Change the version. We are moving towards the next release.
Fixed a nasty bug that messed up negative money amounts.
-rw-r--r--src/interfaces/python/pgmodule.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/src/interfaces/python/pgmodule.c b/src/interfaces/python/pgmodule.c
index 38ae733b9a4..52d10b7ba87 100644
--- a/src/interfaces/python/pgmodule.c
+++ b/src/interfaces/python/pgmodule.c
@@ -36,7 +36,7 @@
#include <string.h>
static PyObject *PGError;
-static const char *PyPgVersion = "3.2";
+static const char *PyPgVersion = "3.3";
/* taken from fileobject.c */
#define BUF(v) PyString_AS_STRING((PyStringObject *)(v))
@@ -1844,21 +1844,32 @@ pgquery_getresult(pgqueryobject * self, PyObject * args)
val = PyFloat_FromDouble(strtod(s, NULL));
break;
- case 3: /* get rid of the '$' and commas */
+ case 3:
+ {
+ int mult = 1;
+
if (*s == '$') /* there's talk of getting rid of
* it */
s++;
- if ((s[0] == '-' || s[0] == '(') && s[1] == '$')
- *(++s) = '-';
+ if (*s == '-' || *s == '(')
+ {
+ s++;
+ mult = -1;
+ }
+
+ /* get rid of the '$' and commas */
+ if (*s == '$') /* Just in case we exposed one */
+ s++;
for (k = 0; *s; s++)
if (*s != ',')
cashbuf[k++] = *s;
cashbuf[k] = 0;
- val = PyFloat_FromDouble(strtod(cashbuf, NULL));
+ val = PyFloat_FromDouble(strtod(cashbuf, NULL) * mult);
break;
+ }
default:
val = PyString_FromString(s);
@@ -1980,21 +1991,32 @@ pgquery_dictresult(pgqueryobject * self, PyObject * args)
val = PyFloat_FromDouble(strtod(s, NULL));
break;
- case 3: /* get rid of the '$' and commas */
+ case 3:
+ {
+ int mult = 1;
+
if (*s == '$') /* there's talk of getting rid of
* it */
s++;
- if ((s[0] == '-' || s[0] == '(') && s[1] == '$')
- *(++s) = '-';
+ if (*s == '-' || *s == '(')
+ {
+ s++;
+ mult = -1;
+ }
+
+ /* get rid of the '$' and commas */
+ if (*s == '$') /* Just in case we exposed one */
+ s++;
for (k = 0; *s; s++)
if (*s != ',')
cashbuf[k++] = *s;
cashbuf[k] = 0;
- val = PyFloat_FromDouble(strtod(cashbuf, NULL));
+ val = PyFloat_FromDouble(strtod(cashbuf, NULL) * mult);
break;
+ }
default:
val = PyString_FromString(s);