[PyGreSQL] [CVS] Change to pygresql: pgmodule.c
Christoph Zwerschke
cito at druid.net
Wed Sep 17 05:00:08 EDT 2008
Update of /usr/cvs/Public/pygresql/module
In directory druid.net:/tmp/cvs-serv27675/module
Modified Files:
pgmodule.c
Log Message:
Allow set_decimal(None) instead of set_decimal(float).
To see the diffs for this commit:
http://www.druid.net/pygresql/viewcvs.cgi/cvs/pygresql/module/pgmodule.c.diff?r1=1.78&r2=1.79
Index: pgmodule.c
===================================================================
RCS file: /usr/cvs/Public/pygresql/module/pgmodule.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- pgmodule.c 16 Sep 2008 22:29:48 -0000 1.78
+++ pgmodule.c 17 Sep 2008 09:00:08 -0000 1.79
@@ -1,5 +1,5 @@
/*
- * $Id: pgmodule.c,v 1.78 2008/09/16 22:29:48 cito Exp $
+ * $Id: pgmodule.c,v 1.79 2008/09/17 09:00:08 cito Exp $
* PyGres, version 2.2 A Python interface for PostgreSQL database. Written by
* D'Arcy J.M. Cain, (darcy at druid.net). Based heavily on code written by
* Pascal Andre, andre at chimay.via.ecp.fr. Copyright (c) 1995, Pascal Andre
@@ -3077,25 +3077,30 @@
/* set decimal */
static char set_decimal__doc__[] =
-"set_decimal(class) -- set a decimal type to be used for numeric values.";
+"set_decimal(cls) -- set a decimal type to be used for numeric values.";
static PyObject *
-set_decimal(PyObject *dummy, PyObject *args)
+set_decimal(PyObject * self, PyObject * args)
{
- PyObject *result = NULL;
- PyObject *temp;
+ PyObject *ret = NULL;
+ PyObject *cls;
- if (PyArg_ParseTuple(args, "O:set_decimal", &temp))
+ if (PyArg_ParseTuple(args, "O", &cls))
{
- if (!PyCallable_Check(temp))
+ if (cls == Py_None)
{
- PyErr_SetString(PyExc_TypeError, "parameter must be callable");
- return NULL;
+ Py_XDECREF(decimal); decimal = NULL;
+ Py_INCREF(Py_None); ret = Py_None;
+ }
+ else if (PyCallable_Check(cls))
+ {
+ Py_XINCREF(cls); Py_XDECREF(decimal); decimal = cls;
+ Py_INCREF(Py_None); ret = Py_None;
}
- Py_XINCREF(temp); Py_XDECREF(decimal); decimal = temp;
- Py_INCREF(Py_None); result = Py_None;
+ else
+ PyErr_SetString(PyExc_TypeError, "decimal type must be None or callable");
}
- return result;
+ return ret;
}
#ifdef DEFAULT_VARS
More information about the PyGreSQL
mailing list