Changeset 329


Ignore:
Timestamp:
Sep 17, 2008, 5:00:08 AM (11 years ago)
Author:
cito
Message:

Allow set_decimal(None) instead of set_decimal(float).

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/docs/pg.txt

    r328 r329  
    372372Syntax::
    373373
    374   set_decimal(class)
    375 
    376 Parameters:
    377   :class: the Python class to be used for PostgreSQL numeric values
     374  set_decimal(cls)
     375
     376Parameters:
     377  :cls: the Python class to be used for PostgreSQL numeric values
    378378
    379379Description:
  • trunk/module/pgmodule.c

    r328 r329  
    11/*
    2  * $Id: pgmodule.c,v 1.78 2008-09-16 22:29:48 cito Exp $
     2 * $Id: pgmodule.c,v 1.79 2008-09-17 09:00:08 cito Exp $
    33 * PyGres, version 2.2 A Python interface for PostgreSQL database. Written by
    44 * D'Arcy J.M. Cain, (darcy@druid.net).  Based heavily on code written by
     
    30783078/* set decimal */
    30793079static char set_decimal__doc__[] =
    3080 "set_decimal(class) -- set a decimal type to be used for numeric values.";
    3081 
    3082 static PyObject *
    3083 set_decimal(PyObject *dummy, PyObject *args)
    3084 {
    3085         PyObject *result = NULL;
    3086         PyObject *temp;
    3087 
    3088         if (PyArg_ParseTuple(args, "O:set_decimal", &temp))
    3089         {
    3090                 if (!PyCallable_Check(temp))
     3080"set_decimal(cls) -- set a decimal type to be used for numeric values.";
     3081
     3082static PyObject *
     3083set_decimal(PyObject * self, PyObject * args)
     3084{
     3085        PyObject *ret = NULL;
     3086        PyObject *cls;
     3087
     3088        if (PyArg_ParseTuple(args, "O", &cls))
     3089        {
     3090                if (cls == Py_None)
    30913091                {
    3092                         PyErr_SetString(PyExc_TypeError, "parameter must be callable");
    3093                         return NULL;
     3092                        Py_XDECREF(decimal); decimal = NULL;
     3093                        Py_INCREF(Py_None); ret = Py_None;
    30943094                }
    3095                 Py_XINCREF(temp); Py_XDECREF(decimal); decimal = temp;
    3096                 Py_INCREF(Py_None); result = Py_None;
    3097         }
    3098         return result;
     3095                else if (PyCallable_Check(cls))
     3096                {
     3097                        Py_XINCREF(cls); Py_XDECREF(decimal); decimal = cls;
     3098                        Py_INCREF(Py_None); ret = Py_None;
     3099                }
     3100                else
     3101                        PyErr_SetString(PyExc_TypeError, "decimal type must be None or callable");
     3102        }
     3103        return ret;
    30993104}
    31003105
Note: See TracChangeset for help on using the changeset viewer.