Author: darcy Date: Sun Nov 8 20:31:08 2015 New Revision: 526 Log: Moving closer to Python 3.
Modified: trunk/module/pgmodule.c Modified: trunk/module/pgmodule.c ============================================================================== --- trunk/module/pgmodule.c Sun Nov 8 13:01:14 2015 (r525) +++ trunk/module/pgmodule.c Sun Nov 8 20:31:08 2015 (r526) @@ -22,13 +22,20 @@ * AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * - * Further modifications copyright 1997, 1998, 1999 by D'Arcy J.M. Cain - * ([email protected]) subject to the same terms and conditions as above. + * Further modifications copyright 1997 to 2015 by D'Arcy J.M. Cain + * ([email protected]) subject to the same terms and conditions as above. * */ /* Note: This should be linked against the same C runtime lib as Python */ #include <Python.h> +#if PY_MAJOR_VERSION >= 3 +#define IS_PY3K +#endif + +#ifndef IS_PY3K +#define PyLong_FromLong PyInt_FromLong +#endif #include <libpq-fe.h> @@ -56,7 +63,7 @@ #endif /* taken from fileobject.c */ -#define BUF(v) PyString_AS_STRING((PyStringObject *)(v)) +#define BUF(v) PyBytes_AS_STRING((PyBytesObject *)(v)) /* default values */ #define MODULE_NAME "pgsql" @@ -114,7 +121,7 @@ static PyObject *pg_default_passwd; /* default password */ #endif /* DEFAULT_VARS */ -DL_EXPORT(void) init_pg(void); +(void) init_pg(void); int *get_type_array(PGresult *result, int nfields); static PyObject *decimal = NULL, /* decimal type */ @@ -135,9 +142,9 @@ PyObject *notice_receiver; /* current notice receiver */ } pgobject; -staticforward PyTypeObject PgType; +static PyTypeObject PgType; -#define is_pgobject(v) ((v)->ob_type == &PgType) +#define is_pgobject(v) (PyType(v) == &PgType) static PyObject * pgobject_New(void) @@ -163,9 +170,9 @@ PGresult const *res; /* an error or warning */ } pgnoticeobject; -staticforward PyTypeObject PgNoticeType; +static PyTypeObject PgNoticeType; -#define is_pgnoticeobject(v) ((v)->ob_type == &PgNoticeType) +#define is_pgnoticeobject(v) (PyType(v) == &PgNoticeType) /* pg query object */ @@ -178,9 +185,9 @@ long num_rows; /* number of (affected) rows */ } pgqueryobject; -staticforward PyTypeObject PgQueryType; +static PyTypeObject PgQueryType; -#define is_pgqueryobject(v) ((v)->ob_type == &PgQueryType) +#define is_pgqueryobject(v) (PyType(v) == &PgQueryType) /* pg source object */ @@ -197,10 +204,9 @@ int num_fields; /* number of fields in each row */ } pgsourceobject; -staticforward PyTypeObject PgSourceType; - -#define is_pgsourceobject(v) ((v)->ob_type == &PgSourceType) +static PyTypeObject PgSourceType; +#define is_pgsourceobject(v) (PyType(v) == &PgSourceType) #ifdef LARGE_OBJECTS /* pg large object */ @@ -213,9 +219,9 @@ int lo_fd; /* large object fd */ } pglargeobject; -staticforward PyTypeObject PglargeType; +static PyTypeObject PglargeType; -#define is_pglargeobject(v) ((v)->ob_type == &PglargeType) +#define is_pglargeobject(v) (PyType(v) == &PglargeType) #endif /* LARGE_OBJECTS */ /* --------------------------------------------------------------------- */ @@ -229,7 +235,7 @@ PyObject *err = NULL; PyObject *str; - if (!(str = PyString_FromString(msg))) + if (!(str = PyBytes_FromString(msg))) err = NULL; else { @@ -241,7 +247,7 @@ if (result) { char *sqlstate = PQresultErrorField(result, PG_DIAG_SQLSTATE); - str = sqlstate ? PyString_FromStringAndSize(sqlstate, 5) : NULL; + str = sqlstate ? PyBytes_FromStringAndSize(sqlstate, 5) : NULL; } else str = NULL; @@ -532,7 +538,7 @@ /* create the footer */ sprintf(p, "(%d row%s)", m, m == 1 ? "" : "s"); /* return the result */ - result = PyString_FromString(buffer); + result = PyBytes_FromString(buffer); free(buffer); return result; } @@ -553,7 +559,7 @@ } } else - return PyString_FromString("(nothing selected)"); + return PyBytes_FromString("(nothing selected)"); } /* prototypes for constructors */ @@ -697,7 +703,7 @@ self->result_type = RESULT_DML; num_rows = atol(temp); } - return PyInt_FromLong(num_rows); + return PyLong_FromLong(num_rows); /* query failed */ case PGRES_EMPTY_QUERY: @@ -750,7 +756,7 @@ return Py_None; } - return PyInt_FromLong(oid); + return PyLong_FromLong(oid); } /* fetches rows from last result */ @@ -808,7 +814,7 @@ str = Py_None; } else - str = PyString_FromString(PQgetvalue(self->result, self->current_row, j)); + str = PyBytes_FromString(PQgetvalue(self->result, self->current_row, j)); PyTuple_SET_ITEM(rowtuple, j, str); } @@ -913,10 +919,10 @@ return -1; /* gets field number */ - if (PyString_Check(param)) - num = PQfnumber(self->result, PyString_AsString(param)); - else if (PyInt_Check(param)) - num = PyInt_AsLong(param); + if (PyBytes_Check(param)) + num = PQfnumber(self->result, PyBytes_AsString(param)); + else if (PyLong_Check(param)) + num = PyLong_AsLong(param); else { PyErr_SetString(PyExc_TypeError, usage); @@ -945,11 +951,11 @@ return NULL; /* affects field information */ - PyTuple_SET_ITEM(result, 0, PyInt_FromLong(num)); + PyTuple_SET_ITEM(result, 0, PyLong_FromLong(num)); PyTuple_SET_ITEM(result, 1, - PyString_FromString(PQfname(self->result, num))); + PyBytes_FromString(PQfname(self->result, num))); PyTuple_SET_ITEM(result, 2, - PyInt_FromLong(PQftype(self->result, num))); + PyLong_FromLong(PQftype(self->result, num))); return result; } @@ -1048,7 +1054,7 @@ if ((num = pgsource_fieldindex(self, param, short_usage)) == -1) return NULL; - return PyString_FromString(PQgetvalue(self->result, + return PyBytes_FromString(PQgetvalue(self->result, self->current_row, num)); } @@ -1097,41 +1103,41 @@ /* arraysize */ if (!strcmp(name, "arraysize")) - return PyInt_FromLong(self->arraysize); + return PyLong_FromLong(self->arraysize); /* resulttype */ if (!strcmp(name, "resulttype")) - return PyInt_FromLong(self->result_type); + return PyLong_FromLong(self->result_type); /* ntuples */ if (!strcmp(name, "ntuples")) - return PyInt_FromLong(self->max_row); + return PyLong_FromLong(self->max_row); /* nfields */ if (!strcmp(name, "nfields")) - return PyInt_FromLong(self->num_fields); + return PyLong_FromLong(self->num_fields); /* attributes list */ if (!strcmp(name, "__members__")) { PyObject *list = PyList_New(5); - PyList_SET_ITEM(list, 0, PyString_FromString("pgcnx")); - PyList_SET_ITEM(list, 1, PyString_FromString("arraysize")); - PyList_SET_ITEM(list, 2, PyString_FromString("resulttype")); - PyList_SET_ITEM(list, 3, PyString_FromString("ntuples")); - PyList_SET_ITEM(list, 4, PyString_FromString("nfields")); + PyList_SET_ITEM(list, 0, PyBytes_FromString("pgcnx")); + PyList_SET_ITEM(list, 1, PyBytes_FromString("arraysize")); + PyList_SET_ITEM(list, 2, PyBytes_FromString("resulttype")); + PyList_SET_ITEM(list, 3, PyBytes_FromString("ntuples")); + PyList_SET_ITEM(list, 4, PyBytes_FromString("nfields")); return list; } /* module name */ if (!strcmp(name, "__module__")) - return PyString_FromString(MODULE_NAME); + return PyBytes_FromString(MODULE_NAME); /* class name */ if (!strcmp(name, "__class__")) - return PyString_FromString("pgsource"); + return PyBytes_FromString("pgsource"); /* seeks name in methods (fallback) */ return Py_FindMethod(pgsource_methods, (PyObject *) self, name); @@ -1144,13 +1150,13 @@ /* arraysize */ if (!strcmp(name, "arraysize")) { - if (!PyInt_Check(v)) + if (!PyLong_Check(v)) { PyErr_SetString(PyExc_TypeError, "arraysize must be integer."); return -1; } - self->arraysize = PyInt_AsLong(v); + self->arraysize = PyLong_AsLong(v); return 0; } @@ -1162,7 +1168,7 @@ static PyObject * pgsource_repr(pgsourceobject *self) { - return PyString_FromString("<pg source object>"); + return PyBytes_FromString("<pg source object>"); } /* returns source object as string in human readable format */ @@ -1176,15 +1182,15 @@ return format_result(self->result); case RESULT_DDL: case RESULT_DML: - return PyString_FromString(PQcmdStatus(self->result)); + return PyBytes_FromString(PQcmdStatus(self->result)); case RESULT_EMPTY: default: - return PyString_FromString("(empty PostgreSQL source object)"); + return PyBytes_FromString("(empty PostgreSQL source object)"); } } /* query type definition */ -staticforward PyTypeObject PgSourceType = { +static PyTypeObject PgSourceType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ "pgsourceobject", /* tp_name */ @@ -1334,7 +1340,7 @@ } /* allocate buffer and runs read */ - buffer = PyString_FromStringAndSize((char *) NULL, size); + buffer = PyBytes_FromStringAndSize((char *) NULL, size); if ((size = lo_read(self->pgcnx->cnx, self->lo_fd, BUF(buffer), size)) < 0) { @@ -1344,7 +1350,7 @@ } /* resize buffer and returns it */ - _PyString_Resize(&buffer, size); + _PyBytes_Resize(&buffer, size); return buffer; } @@ -1419,7 +1425,7 @@ } /* returns position */ - return PyInt_FromLong(ret); + return PyLong_FromLong(ret); } /* gets large object size */ @@ -1468,7 +1474,7 @@ } /* returns size */ - return PyInt_FromLong(end); + return PyLong_FromLong(end); } /* gets large object cursor position */ @@ -1501,7 +1507,7 @@ } /* returns size */ - return PyInt_FromLong(start); + return PyLong_FromLong(start); } /* exports large object as unix file */ @@ -1607,7 +1613,7 @@ if (!strcmp(name, "oid")) { if (check_lo_obj(self, 0)) - return PyInt_FromLong(self->lo_oid); + return PyLong_FromLong(self->lo_oid); Py_INCREF(Py_None); return Py_None; @@ -1615,7 +1621,7 @@ /* error (status) message */ if (!strcmp(name, "error")) - return PyString_FromString(PQerrorMessage(self->pgcnx->cnx)); + return PyBytes_FromString(PQerrorMessage(self->pgcnx->cnx)); /* attributes list */ if (!strcmp(name, "__members__")) @@ -1624,9 +1630,9 @@ if (list) { - PyList_SET_ITEM(list, 0, PyString_FromString("oid")); - PyList_SET_ITEM(list, 1, PyString_FromString("pgcnx")); - PyList_SET_ITEM(list, 2, PyString_FromString("error")); + PyList_SET_ITEM(list, 0, PyBytes_FromString("oid")); + PyList_SET_ITEM(list, 1, PyBytes_FromString("pgcnx")); + PyList_SET_ITEM(list, 2, PyBytes_FromString("error")); } return list; @@ -1634,11 +1640,11 @@ /* module name */ if (!strcmp(name, "__module__")) - return PyString_FromString(MODULE_NAME); + return PyBytes_FromString(MODULE_NAME); /* class name */ if (!strcmp(name, "__class__")) - return PyString_FromString("pglarge"); + return PyBytes_FromString("pglarge"); /* seeks name in methods (fallback) */ return Py_FindMethod(pglarge_methods, (PyObject *) self, name); @@ -1658,7 +1664,7 @@ } /* object type definition */ -staticforward PyTypeObject PglargeType = { +static PyTypeObject PglargeType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ "pglarge", /* tp_name */ @@ -1720,25 +1726,25 @@ #ifdef DEFAULT_VARS /* handles defaults variables (for uninitialised vars) */ if ((!pghost) && (pg_default_host != Py_None)) - pghost = PyString_AsString(pg_default_host); + pghost = PyBytes_AsString(pg_default_host); if ((pgport == -1) && (pg_default_port != Py_None)) - pgport = PyInt_AsLong(pg_default_port); + pgport = PyLong_AsLong(pg_default_port); if ((!pgopt) && (pg_default_opt != Py_None)) - pgopt = PyString_AsString(pg_default_opt); + pgopt = PyBytes_AsString(pg_default_opt); if ((!pgtty) && (pg_default_tty != Py_None)) - pgtty = PyString_AsString(pg_default_tty); + pgtty = PyBytes_AsString(pg_default_tty); if ((!pgdbname) && (pg_default_base != Py_None)) - pgdbname = PyString_AsString(pg_default_base); + pgdbname = PyBytes_AsString(pg_default_base); if ((!pguser) && (pg_default_user != Py_None)) - pguser = PyString_AsString(pg_default_user); + pguser = PyBytes_AsString(pg_default_user); if ((!pgpasswd) && (pg_default_passwd != Py_None)) - pgpasswd = PyString_AsString(pg_default_passwd); + pgpasswd = PyBytes_AsString(pg_default_passwd); #endif /* DEFAULT_VARS */ if (!(npgobj = (pgobject *) pgobject_New())) @@ -1908,7 +1914,7 @@ } /* request that the server abandon processing of the current command */ - return PyInt_FromLong((long) PQrequestCancel(self->cnx)); + return PyLong_FromLong((long) PQrequestCancel(self->cnx)); } /* get connection socket */ @@ -1933,9 +1939,9 @@ } #ifdef NO_PQSOCKET - return PyInt_FromLong((long) self->cnx->sock); + return PyLong_FromLong((long) self->cnx->sock); #else - return PyInt_FromLong((long) PQsocket(self->cnx)); + return PyLong_FromLong((long) PQsocket(self->cnx)); #endif } @@ -2003,7 +2009,7 @@ return NULL; } - return PyInt_FromLong((long) PQntuples(self->result)); + return PyLong_FromLong((long) PQntuples(self->result)); } /* list fields names from query result */ @@ -2034,7 +2040,7 @@ for (i = 0; i < n; i++) { name = PQfname(self->result, i); - str = PyString_FromString(name); + str = PyBytes_FromString(name); PyTuple_SET_ITEM(fieldstuple, i, str); } @@ -2068,7 +2074,7 @@ /* gets fields name and builds object */ name = PQfname(self->result, i); - return PyString_FromString(name); + return PyBytes_FromString(name); } /* gets fields number from name in last result */ @@ -2095,7 +2101,7 @@ return NULL; } - return PyInt_FromLong(num); + return PyLong_FromLong(num); } /* retrieves last result */ @@ -2156,7 +2162,7 @@ switch (typ[j]) { case 1: /* int2/4 */ - val = PyInt_FromString(s, NULL, 10); + val = PyLong_FromString(s, NULL, 10); break; case 2: /* int8 */ @@ -2164,7 +2170,7 @@ break; case 3: /* float/double */ - tmp_obj = PyString_FromString(s); + tmp_obj = PyBytes_FromString(s); val = PyFloat_FromString(tmp_obj, NULL); Py_DECREF(tmp_obj); break; @@ -2193,14 +2199,14 @@ } else { - tmp_obj = PyString_FromString(s); + tmp_obj = PyBytes_FromString(s); val = PyFloat_FromString(tmp_obj, NULL); } Py_DECREF(tmp_obj); break; default: - val = PyString_FromString(s); + val = PyBytes_FromString(s); break; } @@ -2283,7 +2289,7 @@ switch (typ[j]) { case 1: /* int2/4 */ - val = PyInt_FromString(s, NULL, 10); + val = PyLong_FromString(s, NULL, 10); break; case 2: /* int8 */ @@ -2291,7 +2297,7 @@ break; case 3: /* float/double */ - tmp_obj = PyString_FromString(s); + tmp_obj = PyBytes_FromString(s); val = PyFloat_FromString(tmp_obj, NULL); Py_DECREF(tmp_obj); break; @@ -2320,14 +2326,14 @@ } else { - tmp_obj = PyString_FromString(s); + tmp_obj = PyBytes_FromString(s); val = PyFloat_FromString(tmp_obj, NULL); } Py_DECREF(tmp_obj); break; default: - val = PyString_FromString(s); + val = PyBytes_FromString(s); break; } @@ -2385,7 +2391,7 @@ Py_DECREF(arglist); if (ret == NULL) - return NULL; + return NULL; return ret; } @@ -2426,7 +2432,7 @@ PyObject *notify_result, *temp; - if (!(temp = PyString_FromString(notify->relname))) + if (!(temp = PyBytes_FromString(notify->relname))) return NULL; if (!(notify_result = PyTuple_New(3))) @@ -2434,7 +2440,7 @@ PyTuple_SET_ITEM(notify_result, 0, temp); - if (!(temp = PyInt_FromLong(notify->be_pid))) + if (!(temp = PyLong_FromLong(notify->be_pid))) { Py_DECREF(notify_result); return NULL; @@ -2443,7 +2449,7 @@ PyTuple_SET_ITEM(notify_result, 1, temp); /* extra exists even in old versions that did not support it */ - if (!(temp = PyString_FromString(notify->extra))) + if (!(temp = PyBytes_FromString(notify->extra))) { Py_DECREF(notify_result); return NULL; @@ -2582,8 +2588,8 @@ } return NULL; } - *p = PyString_AsString(*s); - *l = (int)PyString_Size(*s); + *p = PyBytes_AsString(*s); + *l = (int)PyBytes_Size(*s); } else { @@ -2602,8 +2608,8 @@ } return NULL; } - *p = PyString_AsString(*s); - *l = (int)PyString_Size(*s); + *p = PyBytes_AsString(*s); + *l = (int)PyBytes_Size(*s); } } @@ -2660,14 +2666,14 @@ PQclear(result); if (ret[0]) /* return number of rows affected */ { - return PyString_FromString(ret); + return PyBytes_FromString(ret); } Py_INCREF(Py_None); return Py_None; } /* for a single insert, return the oid */ PQclear(result); - return PyInt_FromLong(oid); + return PyLong_FromLong(oid); } case PGRES_COPY_OUT: /* no data will be received */ case PGRES_COPY_IN: @@ -2753,7 +2759,7 @@ switch (PQgetline(self->cnx, line, MAX_BUFFER_SIZE)) { case 0: - str = PyString_FromString(line); + str = PyBytes_FromString(line); break; case 1: PyErr_SetString(PyExc_MemoryError, "buffer overflow"); @@ -2803,7 +2809,7 @@ static PyObject * pgquery_repr(pgqueryobject *self) { - return PyString_FromString("<pg query result>"); + return PyBytes_FromString("<pg query result>"); } static PyObject * @@ -2953,9 +2959,9 @@ else bufsiz = 0; } - else if (PyString_Check(item)) + else if (PyBytes_Check(item)) { - const char* t = PyString_AS_STRING(item); + const char* t = PyBytes_AS_STRING(item); while (*t && bufsiz) { if (*t == '\\' || *t == '\t' || *t == '\n') @@ -2966,10 +2972,10 @@ *bufpt++ = *t++; --bufsiz; } } - else if (PyInt_Check(item) || PyLong_Check(item)) + else if (PyLong_Check(item) || PyLong_Check(item)) { PyObject* s = PyObject_Str(item); - const char* t = PyString_AsString(s); + const char* t = PyBytes_AsString(s); while (*t && bufsiz) { *bufpt++ = *t++; --bufsiz; @@ -2979,7 +2985,7 @@ else { PyObject* s = PyObject_Repr(item); - const char* t = PyString_AsString(s); + const char* t = PyBytes_AsString(s); while (*t && bufsiz) { if (*t == '\\' || *t == '\t' || *t == '\n') @@ -3058,7 +3064,7 @@ return NULL; } - return PyInt_FromLong(PQtransactionStatus(self->cnx)); + return PyLong_FromLong(PQtransactionStatus(self->cnx)); } /* get parameter setting */ @@ -3086,7 +3092,7 @@ name = PQparameterStatus(self->cnx, name); if (name) - return PyString_FromString(name); + return PyBytes_FromString(name); /* unknown parameter, return None */ Py_INCREF(Py_None); @@ -3369,47 +3375,47 @@ char *r = PQhost(self->cnx); if (!r) r = "localhost"; - return PyString_FromString(r); + return PyBytes_FromString(r); } /* postmaster port */ if (!strcmp(name, "port")) - return PyInt_FromLong(atol(PQport(self->cnx))); + return PyLong_FromLong(atol(PQport(self->cnx))); /* selected database */ if (!strcmp(name, "db")) - return PyString_FromString(PQdb(self->cnx)); + return PyBytes_FromString(PQdb(self->cnx)); /* selected options */ if (!strcmp(name, "options")) - return PyString_FromString(PQoptions(self->cnx)); + return PyBytes_FromString(PQoptions(self->cnx)); /* selected postgres tty */ if (!strcmp(name, "tty")) - return PyString_FromString(PQtty(self->cnx)); + return PyBytes_FromString(PQtty(self->cnx)); /* error (status) message */ if (!strcmp(name, "error")) - return PyString_FromString(PQerrorMessage(self->cnx)); + return PyBytes_FromString(PQerrorMessage(self->cnx)); /* connection status : 1 - OK, 0 - BAD */ if (!strcmp(name, "status")) - return PyInt_FromLong(PQstatus(self->cnx) == CONNECTION_OK ? 1 : 0); + return PyLong_FromLong(PQstatus(self->cnx) == CONNECTION_OK ? 1 : 0); /* provided user name */ if (!strcmp(name, "user")) - return PyString_FromString(PQuser(self->cnx)); + return PyBytes_FromString(PQuser(self->cnx)); /* protocol version */ if (!strcmp(name, "protocol_version")) - return PyInt_FromLong(PQprotocolVersion(self->cnx)); + return PyLong_FromLong(PQprotocolVersion(self->cnx)); /* backend version */ if (!strcmp(name, "server_version")) #if PG_VERSION_NUM < 80000 - return PyInt_FromLong(PG_VERSION_NUM); + return PyLong_FromLong(PG_VERSION_NUM); #else - return PyInt_FromLong(PQserverVersion(self->cnx)); + return PyLong_FromLong(PQserverVersion(self->cnx)); #endif /* attributes list */ @@ -3419,16 +3425,16 @@ if (list) { - PyList_SET_ITEM(list, 0, PyString_FromString("host")); - PyList_SET_ITEM(list, 1, PyString_FromString("port")); - PyList_SET_ITEM(list, 2, PyString_FromString("db")); - PyList_SET_ITEM(list, 3, PyString_FromString("options")); - PyList_SET_ITEM(list, 4, PyString_FromString("tty")); - PyList_SET_ITEM(list, 5, PyString_FromString("error")); - PyList_SET_ITEM(list, 6, PyString_FromString("status")); - PyList_SET_ITEM(list, 7, PyString_FromString("user")); - PyList_SET_ITEM(list, 8, PyString_FromString("protocol_version")); - PyList_SET_ITEM(list, 9, PyString_FromString("server_version")); + PyList_SET_ITEM(list, 0, PyBytes_FromString("host")); + PyList_SET_ITEM(list, 1, PyBytes_FromString("port")); + PyList_SET_ITEM(list, 2, PyBytes_FromString("db")); + PyList_SET_ITEM(list, 3, PyBytes_FromString("options")); + PyList_SET_ITEM(list, 4, PyBytes_FromString("tty")); + PyList_SET_ITEM(list, 5, PyBytes_FromString("error")); + PyList_SET_ITEM(list, 6, PyBytes_FromString("status")); + PyList_SET_ITEM(list, 7, PyBytes_FromString("user")); + PyList_SET_ITEM(list, 8, PyBytes_FromString("protocol_version")); + PyList_SET_ITEM(list, 9, PyBytes_FromString("server_version")); } return list; @@ -3438,7 +3444,7 @@ } /* object type definition */ -staticforward PyTypeObject PgType = { +static PyTypeObject PgType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ "pgobject", /* tp_name */ @@ -3488,7 +3494,7 @@ /* full message */ if (!strcmp(name, "message")) - return PyString_FromString(PQresultErrorMessage(res)); + return PyBytes_FromString(PQresultErrorMessage(res)); /* other possible fields */ fieldcode = 0; @@ -3504,7 +3510,7 @@ { char *s = PQresultErrorField(res, fieldcode); if (s) - return PyString_FromString(s); + return PyBytes_FromString(s); else { Py_INCREF(Py_None); return Py_None; @@ -3517,12 +3523,12 @@ PyObject *list = PyList_New(6); if (list) { - PyList_SET_ITEM(list, 0, PyString_FromString("pgcnx")); - PyList_SET_ITEM(list, 1, PyString_FromString("severity")); - PyList_SET_ITEM(list, 2, PyString_FromString("message")); - PyList_SET_ITEM(list, 3, PyString_FromString("primary")); - PyList_SET_ITEM(list, 4, PyString_FromString("detail")); - PyList_SET_ITEM(list, 5, PyString_FromString("hint")); + PyList_SET_ITEM(list, 0, PyBytes_FromString("pgcnx")); + PyList_SET_ITEM(list, 1, PyBytes_FromString("severity")); + PyList_SET_ITEM(list, 2, PyBytes_FromString("message")); + PyList_SET_ITEM(list, 3, PyBytes_FromString("primary")); + PyList_SET_ITEM(list, 4, PyBytes_FromString("detail")); + PyList_SET_ITEM(list, 5, PyBytes_FromString("hint")); } return list; } @@ -3539,7 +3545,7 @@ } /* object type definition */ -staticforward PyTypeObject PgNoticeType = { +static PyTypeObject PgNoticeType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ "pgnoticeobject", /* tp_name */ @@ -3589,7 +3595,7 @@ } /* query type definition */ -staticforward PyTypeObject PgQueryType = { +static PyTypeObject PgQueryType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ "pgqueryobject", /* tp_name */ @@ -3722,7 +3728,7 @@ if (PyArg_ParseTuple(args, "")) { - ret = PyString_FromString(decimal_point); + ret = PyBytes_FromString(decimal_point); } else { @@ -3828,7 +3834,7 @@ old = pg_default_host; if (temp) - pg_default_host = PyString_FromString(temp); + pg_default_host = PyBytes_FromString(temp); else { Py_INCREF(Py_None); @@ -3879,7 +3885,7 @@ old = pg_default_base; if (temp) - pg_default_base = PyString_FromString(temp); + pg_default_base = PyBytes_FromString(temp); else { Py_INCREF(Py_None); @@ -3930,7 +3936,7 @@ old = pg_default_opt; if (temp) - pg_default_opt = PyString_FromString(temp); + pg_default_opt = PyBytes_FromString(temp); else { Py_INCREF(Py_None); @@ -3982,7 +3988,7 @@ old = pg_default_tty; if (temp) - pg_default_tty = PyString_FromString(temp); + pg_default_tty = PyBytes_FromString(temp); else { Py_INCREF(Py_None); @@ -4034,7 +4040,7 @@ old = pg_default_user; if (temp) - pg_default_user = PyString_FromString(temp); + pg_default_user = PyBytes_FromString(temp); else { Py_INCREF(Py_None); @@ -4062,7 +4068,7 @@ } if (temp) - pg_default_passwd = PyString_FromString(temp); + pg_default_passwd = PyBytes_FromString(temp); else { Py_INCREF(Py_None); @@ -4114,7 +4120,7 @@ old = pg_default_port; if (port != -1) - pg_default_port = PyInt_FromLong(port); + pg_default_port = PyLong_FromLong(port); else { Py_INCREF(Py_None); @@ -4166,7 +4172,7 @@ static char pg__doc__[] = "Python interface to PostgreSQL DB"; /* Initialization function for the module */ -DL_EXPORT(void) +(void) init_pg(void) { PyObject *mod, @@ -4220,33 +4226,33 @@ PyDict_SetItemString(dict, "NotSupportedError", NotSupportedError); /* Make the version available */ - v = PyString_FromString(PyPgVersion); + v = PyBytes_FromString(PyPgVersion); PyDict_SetItemString(dict, "version", v); PyDict_SetItemString(dict, "__version__", v); Py_DECREF(v); /* results type for queries */ - PyDict_SetItemString(dict, "RESULT_EMPTY", PyInt_FromLong(RESULT_EMPTY)); - PyDict_SetItemString(dict, "RESULT_DML", PyInt_FromLong(RESULT_DML)); - PyDict_SetItemString(dict, "RESULT_DDL", PyInt_FromLong(RESULT_DDL)); - PyDict_SetItemString(dict, "RESULT_DQL", PyInt_FromLong(RESULT_DQL)); + PyDict_SetItemString(dict, "RESULT_EMPTY", PyLong_FromLong(RESULT_EMPTY)); + PyDict_SetItemString(dict, "RESULT_DML", PyLong_FromLong(RESULT_DML)); + PyDict_SetItemString(dict, "RESULT_DDL", PyLong_FromLong(RESULT_DDL)); + PyDict_SetItemString(dict, "RESULT_DQL", PyLong_FromLong(RESULT_DQL)); /* transaction states */ - PyDict_SetItemString(dict,"TRANS_IDLE",PyInt_FromLong(PQTRANS_IDLE)); - PyDict_SetItemString(dict,"TRANS_ACTIVE",PyInt_FromLong(PQTRANS_ACTIVE)); - PyDict_SetItemString(dict,"TRANS_INTRANS",PyInt_FromLong(PQTRANS_INTRANS)); - PyDict_SetItemString(dict,"TRANS_INERROR",PyInt_FromLong(PQTRANS_INERROR)); - PyDict_SetItemString(dict,"TRANS_UNKNOWN",PyInt_FromLong(PQTRANS_UNKNOWN)); + PyDict_SetItemString(dict,"TRANS_IDLE",PyLong_FromLong(PQTRANS_IDLE)); + PyDict_SetItemString(dict,"TRANS_ACTIVE",PyLong_FromLong(PQTRANS_ACTIVE)); + PyDict_SetItemString(dict,"TRANS_INTRANS",PyLong_FromLong(PQTRANS_INTRANS)); + PyDict_SetItemString(dict,"TRANS_INERROR",PyLong_FromLong(PQTRANS_INERROR)); + PyDict_SetItemString(dict,"TRANS_UNKNOWN",PyLong_FromLong(PQTRANS_UNKNOWN)); #ifdef LARGE_OBJECTS /* create mode for large objects */ - PyDict_SetItemString(dict, "INV_READ", PyInt_FromLong(INV_READ)); - PyDict_SetItemString(dict, "INV_WRITE", PyInt_FromLong(INV_WRITE)); + PyDict_SetItemString(dict, "INV_READ", PyLong_FromLong(INV_READ)); + PyDict_SetItemString(dict, "INV_WRITE", PyLong_FromLong(INV_WRITE)); /* position flags for lo_lseek */ - PyDict_SetItemString(dict, "SEEK_SET", PyInt_FromLong(SEEK_SET)); - PyDict_SetItemString(dict, "SEEK_CUR", PyInt_FromLong(SEEK_CUR)); - PyDict_SetItemString(dict, "SEEK_END", PyInt_FromLong(SEEK_END)); + PyDict_SetItemString(dict, "SEEK_SET", PyLong_FromLong(SEEK_SET)); + PyDict_SetItemString(dict, "SEEK_CUR", PyLong_FromLong(SEEK_CUR)); + PyDict_SetItemString(dict, "SEEK_END", PyLong_FromLong(SEEK_END)); #endif /* LARGE_OBJECTS */ #ifdef DEFAULT_VARS _______________________________________________ PyGreSQL mailing list [email protected] https://mail.vex.net/mailman/listinfo.cgi/pygresql
