Issue609505
Created on 2002-09-15.08:00:11 by anonymous, last changed 2002-12-24.17:17:27 by bzimmer.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2002-09-15 08:00:11 | anonymous | create | |
Created on 2002-09-15.08:00:11 by anonymous, last changed 2002-12-24.17:17:27 by bzimmer.
| Messages | |||
|---|---|---|---|
| msg737 (view) | Author: Nobody/Anonymous (nobody) | Date: 2002-09-15.08:00:11 | |
There is a problem with the way that SQLWarnings are
added in PyCursor.addWarning(SQLWarning).
The existing code is:
PyTuple warn = new PyTuple();
// there are three parts: (reason, state, vendorCode)
warn.__add__(Py.java2py(warning.getMessage()));
warn.__add__(Py.java2py(warning.getSQLState()));
warn.__add__(Py.newInteger(warning.getErrorCode()));
However, PyTuple.__add__(PyObject) silently ignores
any object that is not another PyTuple instance. This
means that whilst there is an entry in the PyList for
each warning, the tuple has a zero length and the
warnings are effectively lost.
The fix is to replace the above code to use the PyTuple
constructor that allows an array to be passed:
PyObject[] msg = new PyObject[] {
// there are three parts: (reason, state, vendorCode)
Py.java2py(warning.getMessage()),
Py.java2py(warning.getSQLState()),
Py.newInteger(warning.getErrorCode())
};
PyTuple warn = new PyTuple(msg);
|
|||
| msg738 (view) | Author: Brian Zimmer (bzimmer) | Date: 2002-12-24.17:17:27 | |
Logged In: YES user_id=37674 Patched as suggested. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2002-09-15 08:00:11 | anonymous | create | |
Supported by Python Software Foundation,
Powered by Roundup