mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-26 02:43:43 +03:00
Allow importing _psycopg even if the 'errors' module is not available
This commit is contained in:
parent
30c1befa64
commit
99f680b6fe
|
@ -711,7 +711,8 @@ basic_errors_init(PyObject *module)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(errmodule = PyImport_ImportModule("psycopg2.errors"))) {
|
if (!(errmodule = PyImport_ImportModule("psycopg2.errors"))) {
|
||||||
goto exit;
|
/* don't inject the exceptions into the errors module */
|
||||||
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; exctable[i].name; i++) {
|
for (i = 0; exctable[i].name; i++) {
|
||||||
|
@ -727,10 +728,12 @@ basic_errors_init(PyObject *module)
|
||||||
Py_DECREF(*exctable[i].exc);
|
Py_DECREF(*exctable[i].exc);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
Py_INCREF(*exctable[i].exc);
|
if (errmodule) {
|
||||||
if (0 > PyModule_AddObject(errmodule, name, *exctable[i].exc)) {
|
Py_INCREF(*exctable[i].exc);
|
||||||
Py_DECREF(*exctable[i].exc);
|
if (0 > PyModule_AddObject(errmodule, name, *exctable[i].exc)) {
|
||||||
goto exit;
|
Py_DECREF(*exctable[i].exc);
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -774,7 +777,8 @@ sqlstate_errors_init(PyObject *module)
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
if (!(errmodule = PyImport_ImportModule("psycopg2.errors"))) {
|
if (!(errmodule = PyImport_ImportModule("psycopg2.errors"))) {
|
||||||
goto exit;
|
/* don't inject the exceptions into the errors module */
|
||||||
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
if (!(sqlstate_errors = PyDict_New())) {
|
if (!(sqlstate_errors = PyDict_New())) {
|
||||||
goto exit;
|
goto exit;
|
||||||
|
@ -808,10 +812,20 @@ sqlstate_errors_init(PyObject *module)
|
||||||
sqlstate_errors, sqlstate_table[i].sqlstate, exc)) {
|
sqlstate_errors, sqlstate_table[i].sqlstate, exc)) {
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
if (0 > PyModule_AddObject(errmodule, sqlstate_table[i].name, exc)) {
|
|
||||||
goto exit;
|
/* Expose the exceptions to psycopg2.errors */
|
||||||
|
if (errmodule) {
|
||||||
|
if (0 > PyModule_AddObject(
|
||||||
|
errmodule, sqlstate_table[i].name, exc)) {
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
exc = NULL; /* ref stolen by the module */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Py_CLEAR(exc);
|
||||||
}
|
}
|
||||||
exc = NULL; /* ref stolen by the module */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = 0;
|
rv = 0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user