mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-01-31 17:34:08 +03:00
Merge branch 'drop-libpq-pre-91'
This commit is contained in:
commit
4458c9b4c9
2
NEWS
2
NEWS
|
@ -25,6 +25,8 @@ New features:
|
||||||
Other changes:
|
Other changes:
|
||||||
|
|
||||||
- Dropped support for Python 2.5.
|
- Dropped support for Python 2.5.
|
||||||
|
- Dropped support for client library older than PostgreSQL 9.1 (but older
|
||||||
|
server versions are still supported).
|
||||||
|
|
||||||
|
|
||||||
What's new in psycopg 2.6.3
|
What's new in psycopg 2.6.3
|
||||||
|
|
|
@ -19,7 +19,8 @@ The current `!psycopg2` implementation supports:
|
||||||
|
|
||||||
- Python 2 versions from 2.6 to 2.7
|
- Python 2 versions from 2.6 to 2.7
|
||||||
- Python 3 versions from 3.1 to 3.5
|
- Python 3 versions from 3.1 to 3.5
|
||||||
- PostgreSQL versions from 7.4 to 9.4
|
- PostgreSQL server versions from 7.4 to 9.5
|
||||||
|
- PostgreSQL client library version from 9.1
|
||||||
|
|
||||||
.. _PostgreSQL: http://www.postgresql.org/
|
.. _PostgreSQL: http://www.postgresql.org/
|
||||||
.. _Python: http://www.python.org/
|
.. _Python: http://www.python.org/
|
||||||
|
|
|
@ -39,11 +39,9 @@ static unsigned char *
|
||||||
binary_escape(unsigned char *from, size_t from_length,
|
binary_escape(unsigned char *from, size_t from_length,
|
||||||
size_t *to_length, PGconn *conn)
|
size_t *to_length, PGconn *conn)
|
||||||
{
|
{
|
||||||
#if PG_VERSION_NUM >= 80104
|
|
||||||
if (conn)
|
if (conn)
|
||||||
return PQescapeByteaConn(conn, from, from_length, to_length);
|
return PQescapeByteaConn(conn, from, from_length, to_length);
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
return PQescapeBytea(from, from_length, to_length);
|
return PQescapeBytea(from, from_length, to_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -474,8 +474,6 @@ lobject_export(lobjectObject *self, const char *filename)
|
||||||
return retvalue;
|
return retvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if PG_VERSION_NUM >= 80300
|
|
||||||
|
|
||||||
RAISES_NEG int
|
RAISES_NEG int
|
||||||
lobject_truncate(lobjectObject *self, size_t len)
|
lobject_truncate(lobjectObject *self, size_t len)
|
||||||
{
|
{
|
||||||
|
@ -510,5 +508,3 @@ lobject_truncate(lobjectObject *self, size_t len)
|
||||||
return retvalue;
|
return retvalue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* PG_VERSION_NUM >= 80300 */
|
|
||||||
|
|
|
@ -266,8 +266,6 @@ psyco_lobj_get_closed(lobjectObject *self, void *closure)
|
||||||
return closed;
|
return closed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if PG_VERSION_NUM >= 80300
|
|
||||||
|
|
||||||
#define psyco_lobj_truncate_doc \
|
#define psyco_lobj_truncate_doc \
|
||||||
"truncate(len=0) -- Truncate large object to given size."
|
"truncate(len=0) -- Truncate large object to given size."
|
||||||
|
|
||||||
|
@ -327,10 +325,8 @@ static struct PyMethodDef lobjectObject_methods[] = {
|
||||||
METH_NOARGS, psyco_lobj_unlink_doc},
|
METH_NOARGS, psyco_lobj_unlink_doc},
|
||||||
{"export",(PyCFunction)psyco_lobj_export,
|
{"export",(PyCFunction)psyco_lobj_export,
|
||||||
METH_VARARGS, psyco_lobj_export_doc},
|
METH_VARARGS, psyco_lobj_export_doc},
|
||||||
#if PG_VERSION_NUM >= 80300
|
|
||||||
{"truncate",(PyCFunction)psyco_lobj_truncate,
|
{"truncate",(PyCFunction)psyco_lobj_truncate,
|
||||||
METH_VARARGS, psyco_lobj_truncate_doc},
|
METH_VARARGS, psyco_lobj_truncate_doc},
|
||||||
#endif /* PG_VERSION_NUM >= 80300 */
|
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -475,6 +471,3 @@ PyTypeObject lobjectType = {
|
||||||
0, /*tp_alloc*/
|
0, /*tp_alloc*/
|
||||||
lobject_new, /*tp_new*/
|
lobject_new, /*tp_new*/
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -1913,7 +1913,7 @@ pq_fetch(cursorObject *curs, int no_result)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* PGRES_COPY_BOTH, PGRES_SINGLE_TUPLE, future statuses */
|
/* PGRES_SINGLE_TUPLE, future statuses */
|
||||||
Dprintf("pq_fetch: got unsupported result: status = %d pgconn = %p",
|
Dprintf("pq_fetch: got unsupported result: status = %d pgconn = %p",
|
||||||
pgstatus, curs->conn);
|
pgstatus, curs->conn);
|
||||||
PyErr_Format(NotSupportedError,
|
PyErr_Format(NotSupportedError,
|
||||||
|
|
|
@ -26,6 +26,10 @@
|
||||||
#ifndef PSYCOPG_H
|
#ifndef PSYCOPG_H
|
||||||
#define PSYCOPG_H 1
|
#define PSYCOPG_H 1
|
||||||
|
|
||||||
|
#if PG_VERSION_NUM < 90100
|
||||||
|
#error "Psycopg requires PostgreSQL client library (libpq) >= 9.1"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PY_SSIZE_T_CLEAN
|
#define PY_SSIZE_T_CLEAN
|
||||||
#include <Python.h>
|
#include <Python.h>
|
||||||
#include <libpq-fe.h>
|
#include <libpq-fe.h>
|
||||||
|
|
|
@ -164,7 +164,6 @@ exit:
|
||||||
static PyObject *
|
static PyObject *
|
||||||
psyco_quote_ident(PyObject *self, PyObject *args, PyObject *kwargs)
|
psyco_quote_ident(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
{
|
{
|
||||||
#if PG_VERSION_NUM >= 90000
|
|
||||||
PyObject *ident = NULL, *obj = NULL, *result = NULL;
|
PyObject *ident = NULL, *obj = NULL, *result = NULL;
|
||||||
connectionObject *conn;
|
connectionObject *conn;
|
||||||
const char *str;
|
const char *str;
|
||||||
|
@ -204,10 +203,6 @@ exit:
|
||||||
Py_XDECREF(ident);
|
Py_XDECREF(ident);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
#else
|
|
||||||
PyErr_SetString(NotSupportedError, "PQescapeIdentifier not available in libpq < 9.0");
|
|
||||||
return NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** type registration **/
|
/** type registration **/
|
||||||
|
@ -285,9 +280,7 @@ psyco_libcrypto_threads_init(void)
|
||||||
if ((m = PyImport_ImportModule("ssl"))) {
|
if ((m = PyImport_ImportModule("ssl"))) {
|
||||||
/* disable libcrypto setup in libpq, so it won't stomp on the callbacks
|
/* disable libcrypto setup in libpq, so it won't stomp on the callbacks
|
||||||
that have already been set up */
|
that have already been set up */
|
||||||
#if PG_VERSION_NUM >= 80400
|
|
||||||
PQinitOpenSSL(1, 0);
|
PQinitOpenSSL(1, 0);
|
||||||
#endif
|
|
||||||
Py_DECREF(m);
|
Py_DECREF(m);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -67,12 +67,10 @@ psycopg_escape_string(connectionObject *conn, const char *from, Py_ssize_t len,
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
#if PG_VERSION_NUM >= 80104
|
|
||||||
int err;
|
int err;
|
||||||
if (conn && conn->pgconn)
|
if (conn && conn->pgconn)
|
||||||
ql = PQescapeStringConn(conn->pgconn, to+eq+1, from, len, &err);
|
ql = PQescapeStringConn(conn->pgconn, to+eq+1, from, len, &err);
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
ql = PQescapeString(to+eq+1, from, len);
|
ql = PQescapeString(to+eq+1, from, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user