This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Dima.Tisnek
Recipients Dima.Tisnek
Date 2015-05-07.09:19:34
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1430990375.51.0.367829317248.issue24139@psf.upfronthosting.co.za>
In-reply-to
Content
Let's fetch extended error codes from SQLite, information contained is not particularly interesting to the user, but may be invaluable in debugging!

http://www.sqlite.org/rescode.html
https://sqlite.org/c3ref/extended_result_codes.html
http://www.sqlite.org/c3ref/errcode.html

Current behaviour:

For example, consider that extended error was SQLITE_READONLY_DBMOVED, it would be set in https://github.com/mackyle/sqlite/blob/1caed0ecc62583c4f8a509ff66ae99b6939fe727/src/pager.c#L4836 without explicit detail string.

Python will call sqlite3_errcode() which will strip extended information via `& errMask` in https://github.com/mackyle/sqlite/blob/ebb27fe5bd5045d924d99cdd7dec9b7064c24768/src/main.c#L2176

Python will then call sqlite3_errmsg(), and the error message will be according to truncated (simple) error per:
https://github.com/mackyle/sqlite/blob/ebb27fe5bd5045d924d99cdd7dec9b7064c24768/src/main.c#L1318

P.S. there are a few cases where sqlite3 internally sets both error code and message, in those cases, current Python module (presumably) reads out the error message correctly. For example https://github.com/mackyle/sqlite/blob/ebb27fe5bd5045d924d99cdd7dec9b7064c24768/src/main.c#L1584
History
Date User Action Args
2015-05-07 09:19:35Dima.Tisneksetrecipients: + Dima.Tisnek
2015-05-07 09:19:35Dima.Tisneksetmessageid: <1430990375.51.0.367829317248.issue24139@psf.upfronthosting.co.za>
2015-05-07 09:19:35Dima.Tisneklinkissue24139 messages
2015-05-07 09:19:34Dima.Tisnekcreate